[ExampleDef.hs and RuleDevelopment added
martin.hofmann@uni-bamberg.de**20090123084650] addfile ./src/ExampleDefs.hs
hunk ./src/ExampleDefs.hs 1
-
+{-# OPTIONS_GHC -fglasgow-exts -fth   #-}
+module ExampleDefs where
+
+import Language.Haskell.TH
+
+data Color = Purple | Yellow
+data Size = Large | Small
+data Act = Dip | Stretch
+data Age = Adult | Child
+data Inflate = FF | TT
+
+balloonsDef = [d|
+
+	balloons(Yellow,Small,Stretch,Adult) = TT
+	balloons(Yellow,Small,Stretch,Child) = TT
+	balloons(Yellow,Small,Dip,Adult) = TT
+	balloons(Yellow,Small,Dip,Child) = TT
+	balloons(Yellow,Small,Stretch,Adult) = TT
+	balloons(Yellow,Small,Stretch,Child) = TT
+	balloons(Yellow,Small,Dip,Adult) = TT
+	balloons(Yellow,Small,Dip,Child) = TT
+	balloons(Yellow,Large,Stretch,Adult) = FF
+	balloons(Yellow,Large,Stretch,Child) = FF
+	balloons(Yellow,Large,Dip,Adult) = FF
+	balloons(Yellow,Large,Dip,Child) = FF
+	balloons(Purple,Small,Stretch,Adult) = FF
+	balloons(Purple,Small,Stretch,Child) = FF
+	balloons(Purple,Small,Dip,Adult) = FF
+	balloons(Purple,Small,Dip,Child) = FF
+	balloons(Purple,Large,Stretch,Adult) = FF
+	balloons(Purple,Large,Stretch,Child) = FF
+	balloons(Purple,Large,Dip,Adult) = FF
+	balloons(Purple,Large,Dip,Child) = FF
+	|]
+	
+
+data Tile  = B | O | X
+data Class = Lose | Win
+
+tictactoeDef = [d|
+	tictactoe(X,X,X,X,O,O,X,O,O) = Win
+	tictactoe(X,X,X,X,O,O,O,X,O) = Win
+	tictactoe(X,X,X,X,O,O,O,O,X) = Win
+	tictactoe(X,X,X,X,O,O,O,B,B) = Win
+	tictactoe(X,X,X,X,O,O,B,O,B) = Win
+	tictactoe(X,X,X,X,O,O,B,B,O) = Win
+	tictactoe(X,X,X,X,O,B,O,O,B) = Win
+	tictactoe(X,X,X,X,O,B,O,B,O) = Win
+	tictactoe(X,X,X,X,O,B,B,O,O) = Win
+	tictactoe(X,X,X,X,B,O,O,O,B) = Win
+	tictactoe(X,X,X,X,B,O,O,B,O) = Win
+	tictactoe(X,X,X,X,B,O,B,O,O) = Win
+	tictactoe(X,X,X,O,X,O,X,O,O) = Win
+	tictactoe(X,X,X,O,X,O,O,X,O) = Win
+	tictactoe(X,X,X,O,X,O,O,O,X) = Win
+	tictactoe(X,X,X,O,X,O,O,B,B) = Win
+	tictactoe(X,X,X,O,X,O,B,O,B) = Win
+	tictactoe(X,X,X,O,X,O,B,B,O) = Win
+	tictactoe(X,X,X,O,X,B,O,O,B) = Win
+	tictactoe(X,X,X,O,X,B,O,B,O) = Win
+	tictactoe(X,X,X,O,X,B,B,O,O) = Win
+	tictactoe(X,X,X,O,O,X,X,O,O) = Win
+	tictactoe(X,X,X,O,O,X,O,X,O) = Win
+	tictactoe(X,X,X,O,O,X,O,O,X) = Win
+	tictactoe(X,X,X,O,O,X,O,B,B) = Win
+	tictactoe(X,X,X,O,O,X,B,O,B) = Win
+	tictactoe(X,X,X,O,O,X,B,B,O) = Win
+	tictactoe(X,X,X,O,O,B,X,O,B) = Win
+	tictactoe(X,X,X,O,O,B,X,B,O) = Win
+	tictactoe(X,X,X,O,O,B,O,X,B) = Win
+	tictactoe(X,X,X,O,O,B,O,B,X) = Win
+	tictactoe(X,X,X,O,O,B,B,X,O) = Win
+	tictactoe(X,X,X,O,O,B,B,O,X) = Win
+	tictactoe(X,X,X,O,O,B,B,B,B) = Win
+	tictactoe(X,X,X,O,B,X,O,O,B) = Win
+	tictactoe(X,X,X,O,B,X,O,B,O) = Win
+	tictactoe(X,X,X,O,B,X,B,O,O) = Win
+	tictactoe(X,X,X,O,B,O,X,O,B) = Win
+	tictactoe(X,X,X,O,B,O,X,B,O) = Win
+	tictactoe(X,X,X,O,B,O,O,X,B) = Win
+	tictactoe(X,X,X,O,B,O,O,B,X) = Win
+	tictactoe(X,X,X,O,B,O,B,X,O) = Win
+	tictactoe(X,X,X,O,B,O,B,O,X) = Win
+	tictactoe(X,X,X,O,B,O,B,B,B) = Win
+	tictactoe(X,X,X,O,B,B,X,O,O) = Win
+	tictactoe(X,X,X,O,B,B,O,X,O) = Win
+	tictactoe(X,X,X,O,B,B,O,O,X) = Win
+	tictactoe(X,X,X,O,B,B,O,B,B) = Win
+	tictactoe(X,X,X,O,B,B,B,O,B) = Win
+	tictactoe(X,X,X,O,B,B,B,B,O) = Win
+	tictactoe(X,X,X,B,X,O,O,O,B) = Win
+	tictactoe(X,X,X,B,X,O,O,B,O) = Win
+	tictactoe(X,X,X,B,X,O,B,O,O) = Win
+	tictactoe(X,X,X,B,O,X,O,O,B) = Win
+	tictactoe(X,X,X,B,O,X,O,B,O) = Win
+	tictactoe(X,X,X,B,O,X,B,O,O) = Win
+	tictactoe(X,X,X,B,O,O,X,O,B) = Win
+	tictactoe(X,X,X,B,O,O,X,B,O) = Win
+	tictactoe(X,X,X,B,O,O,O,X,B) = Win
+	tictactoe(X,X,X,B,O,O,O,B,X) = Win
+	tictactoe(X,X,X,B,O,O,B,X,O) = Win
+	tictactoe(X,X,X,B,O,O,B,O,X) = Win
+	tictactoe(X,X,X,B,O,O,B,B,B) = Win
+	tictactoe(X,X,X,B,O,B,X,O,O) = Win
+	tictactoe(X,X,X,B,O,B,O,X,O) = Win
+	tictactoe(X,X,X,B,O,B,O,O,X) = Win
+	tictactoe(X,X,X,B,O,B,O,B,B) = Win
+	tictactoe(X,X,X,B,O,B,B,O,B) = Win
+	tictactoe(X,X,X,B,O,B,B,B,O) = Win
+	tictactoe(X,X,X,B,B,O,X,O,O) = Win
+	tictactoe(X,X,X,B,B,O,O,X,O) = Win
+	tictactoe(X,X,X,B,B,O,O,O,X) = Win
+	tictactoe(X,X,X,B,B,O,O,B,B) = Win
+	tictactoe(X,X,X,B,B,O,B,O,B) = Win
+	tictactoe(X,X,X,B,B,O,B,B,O) = Win
+	tictactoe(X,X,X,B,B,B,O,O,B) = Win
+	tictactoe(X,X,X,B,B,B,O,B,O) = Win
+	tictactoe(X,X,X,B,B,B,B,O,O) = Win
+	tictactoe(X,X,O,X,X,O,O,O,X) = Win
+	tictactoe(X,X,O,X,O,X,X,O,O) = Win
+	tictactoe(X,X,O,X,O,O,X,O,X) = Win
+	tictactoe(X,X,O,X,O,O,X,B,B) = Win
+	tictactoe(X,X,O,X,O,B,X,O,B) = Win
+	tictactoe(X,X,O,X,O,B,X,B,O) = Win
+	tictactoe(X,X,O,X,B,O,X,O,B) = Win
+	tictactoe(X,X,O,X,B,B,X,O,O) = Win
+	tictactoe(X,X,O,O,X,X,O,X,O) = Win
+	tictactoe(X,X,O,O,X,X,O,O,X) = Win
+	tictactoe(X,X,O,O,X,O,X,O,X) = Win
+	tictactoe(X,X,O,O,X,O,O,X,X) = Win
+	tictactoe(X,X,O,O,X,O,B,X,B) = Win
+	tictactoe(X,X,O,O,X,O,B,B,X) = Win
+	tictactoe(X,X,O,O,X,B,O,X,B) = Win
+	tictactoe(X,X,O,O,X,B,O,B,X) = Win
+	tictactoe(X,X,O,O,X,B,B,X,O) = Win
+	tictactoe(X,X,O,O,X,B,B,O,X) = Win
+	tictactoe(X,X,O,B,X,O,O,X,B) = Win
+	tictactoe(X,X,O,B,X,O,O,B,X) = Win
+	tictactoe(X,X,O,B,X,O,B,O,X) = Win
+	tictactoe(X,X,O,B,X,B,O,X,O) = Win
+	tictactoe(X,X,O,B,X,B,O,O,X) = Win
+	tictactoe(X,X,B,X,O,O,X,O,B) = Win
+	tictactoe(X,X,B,X,O,O,X,B,O) = Win
+	tictactoe(X,X,B,X,O,B,X,O,O) = Win
+	tictactoe(X,X,B,X,B,O,X,O,O) = Win
+	tictactoe(X,X,B,O,X,O,O,X,B) = Win
+	tictactoe(X,X,B,O,X,O,O,B,X) = Win
+	tictactoe(X,X,B,O,X,O,B,X,O) = Win
+	tictactoe(X,X,B,O,X,O,B,O,X) = Win
+	tictactoe(X,X,B,O,X,B,O,X,O) = Win
+	tictactoe(X,X,B,O,X,B,O,O,X) = Win
+	tictactoe(X,X,B,B,X,O,O,X,O) = Win
+	tictactoe(X,X,B,B,X,O,O,O,X) = Win
+	tictactoe(X,O,X,X,X,O,X,O,O) = Win
+	tictactoe(X,O,X,X,X,O,O,O,X) = Win
+	tictactoe(X,O,X,X,O,O,X,X,O) = Win
+	tictactoe(X,O,X,X,O,O,X,B,B) = Win
+	tictactoe(X,O,X,X,O,B,X,B,O) = Win
+	tictactoe(X,O,X,X,B,O,X,O,B) = Win
+	tictactoe(X,O,X,X,B,O,X,B,O) = Win
+	tictactoe(X,O,X,X,B,B,X,O,O) = Win
+	tictactoe(X,O,X,O,X,X,X,O,O) = Win
+	tictactoe(X,O,X,O,X,X,O,O,X) = Win
+	tictactoe(X,O,X,O,X,O,X,X,O) = Win
+	tictactoe(X,O,X,O,X,O,X,O,X) = Win
+	tictactoe(X,O,X,O,X,O,X,B,B) = Win
+	tictactoe(X,O,X,O,X,O,O,X,X) = Win
+	tictactoe(X,O,X,O,X,O,B,B,X) = Win
+	tictactoe(X,O,X,O,X,B,X,O,B) = Win
+	tictactoe(X,O,X,O,X,B,X,B,O) = Win
+	tictactoe(X,O,X,O,X,B,O,B,X) = Win
+	tictactoe(X,O,X,O,X,B,B,O,X) = Win
+	tictactoe(X,O,X,O,O,X,O,X,X) = Win
+	tictactoe(X,O,X,O,O,X,B,B,X) = Win
+	tictactoe(X,O,X,O,B,X,O,B,X) = Win
+	tictactoe(X,O,X,O,B,X,B,O,X) = Win
+	tictactoe(X,O,X,B,X,O,X,O,B) = Win
+	tictactoe(X,O,X,B,X,O,X,B,O) = Win
+	tictactoe(X,O,X,B,X,O,O,B,X) = Win
+	tictactoe(X,O,X,B,X,O,B,O,X) = Win
+	tictactoe(X,O,X,B,X,B,X,O,O) = Win
+	tictactoe(X,O,X,B,X,B,O,O,X) = Win
+	tictactoe(X,O,X,B,O,X,O,B,X) = Win
+	tictactoe(X,O,X,B,B,X,O,O,X) = Win
+	tictactoe(X,O,O,X,X,X,X,O,O) = Win
+	tictactoe(X,O,O,X,X,X,O,X,O) = Win
+	tictactoe(X,O,O,X,X,X,O,O,X) = Win
+	tictactoe(X,O,O,X,X,X,O,B,B) = Win
+	tictactoe(X,O,O,X,X,X,B,O,B) = Win
+	tictactoe(X,O,O,X,X,X,B,B,O) = Win
+	tictactoe(X,O,O,X,X,O,X,O,X) = Win
+	tictactoe(X,O,O,X,X,O,X,B,B) = Win
+	tictactoe(X,O,O,X,X,O,O,X,X) = Win
+	tictactoe(X,O,O,X,X,O,B,B,X) = Win
+	tictactoe(X,O,O,X,X,B,X,O,B) = Win
+	tictactoe(X,O,O,X,X,B,X,B,O) = Win
+	tictactoe(X,O,O,X,X,B,O,B,X) = Win
+	tictactoe(X,O,O,X,X,B,B,O,X) = Win
+	tictactoe(X,O,O,X,O,X,X,X,O) = Win
+	tictactoe(X,O,O,X,O,X,X,B,B) = Win
+	tictactoe(X,O,O,X,O,O,X,X,X) = Win
+	tictactoe(X,O,O,X,O,B,X,X,B) = Win
+	tictactoe(X,O,O,X,O,B,X,B,X) = Win
+	tictactoe(X,O,O,X,B,X,X,O,B) = Win
+	tictactoe(X,O,O,X,B,X,X,B,O) = Win
+	tictactoe(X,O,O,X,B,O,X,X,B) = Win
+	tictactoe(X,O,O,X,B,O,X,B,X) = Win
+	tictactoe(X,O,O,X,B,B,X,X,O) = Win
+	tictactoe(X,O,O,X,B,B,X,O,X) = Win
+	tictactoe(X,O,O,X,B,B,X,B,B) = Win
+	tictactoe(X,O,O,O,X,X,X,O,X) = Win
+	tictactoe(X,O,O,O,X,X,O,X,X) = Win
+	tictactoe(X,O,O,O,X,X,B,B,X) = Win
+	tictactoe(X,O,O,O,X,O,X,X,X) = Win
+	tictactoe(X,O,O,O,X,B,X,B,X) = Win
+	tictactoe(X,O,O,O,X,B,B,X,X) = Win
+	tictactoe(X,O,O,O,O,X,X,X,X) = Win
+	tictactoe(X,O,O,O,B,B,X,X,X) = Win
+	tictactoe(X,O,O,B,X,X,O,B,X) = Win
+	tictactoe(X,O,O,B,X,X,B,O,X) = Win
+	tictactoe(X,O,O,B,X,O,X,B,X) = Win
+	tictactoe(X,O,O,B,X,O,B,X,X) = Win
+	tictactoe(X,O,O,B,X,B,X,O,X) = Win
+	tictactoe(X,O,O,B,X,B,O,X,X) = Win
+	tictactoe(X,O,O,B,X,B,B,B,X) = Win
+	tictactoe(X,O,O,B,O,B,X,X,X) = Win
+	tictactoe(X,O,O,B,B,O,X,X,X) = Win
+	tictactoe(X,O,B,X,X,X,O,O,B) = Win
+	tictactoe(X,O,B,X,X,X,O,B,O) = Win
+	tictactoe(X,O,B,X,X,X,B,O,O) = Win
+	tictactoe(X,O,B,X,X,O,X,O,B) = Win
+	tictactoe(X,O,B,X,X,O,X,B,O) = Win
+	tictactoe(X,O,B,X,X,O,O,B,X) = Win
+	tictactoe(X,O,B,X,X,O,B,O,X) = Win
+	tictactoe(X,O,B,X,X,B,X,O,O) = Win
+	tictactoe(X,O,B,X,X,B,O,O,X) = Win
+	tictactoe(X,O,B,X,O,X,X,B,O) = Win
+	tictactoe(X,O,B,X,O,O,X,X,B) = Win
+	tictactoe(X,O,B,X,O,O,X,B,X) = Win
+	tictactoe(X,O,B,X,O,B,X,X,O) = Win
+	tictactoe(X,O,B,X,O,B,X,B,B) = Win
+	tictactoe(X,O,B,X,B,X,X,O,O) = Win
+	tictactoe(X,O,B,X,B,O,X,X,O) = Win
+	tictactoe(X,O,B,X,B,O,X,O,X) = Win
+	tictactoe(X,O,B,X,B,O,X,B,B) = Win
+	tictactoe(X,O,B,X,B,B,X,O,B) = Win
+	tictactoe(X,O,B,X,B,B,X,B,O) = Win
+	tictactoe(X,O,B,O,X,X,O,B,X) = Win
+	tictactoe(X,O,B,O,X,X,B,O,X) = Win
+	tictactoe(X,O,B,O,X,O,X,B,X) = Win
+	tictactoe(X,O,B,O,X,O,B,X,X) = Win
+	tictactoe(X,O,B,O,X,B,X,O,X) = Win
+	tictactoe(X,O,B,O,X,B,O,X,X) = Win
+	tictactoe(X,O,B,O,X,B,B,B,X) = Win
+	tictactoe(X,O,B,O,O,B,X,X,X) = Win
+	tictactoe(X,O,B,O,B,O,X,X,X) = Win
+	tictactoe(X,O,B,B,X,X,O,O,X) = Win
+	tictactoe(X,O,B,B,X,O,X,O,X) = Win
+	tictactoe(X,O,B,B,X,O,O,X,X) = Win
+	tictactoe(X,O,B,B,X,O,B,B,X) = Win
+	tictactoe(X,O,B,B,X,B,O,B,X) = Win
+	tictactoe(X,O,B,B,X,B,B,O,X) = Win
+	tictactoe(X,O,B,B,O,O,X,X,X) = Win
+	tictactoe(X,B,X,X,O,O,X,O,B) = Win
+	tictactoe(X,B,X,X,O,O,X,B,O) = Win
+	tictactoe(X,B,X,X,O,B,X,O,O) = Win
+	tictactoe(X,B,X,X,B,O,X,O,O) = Win
+	tictactoe(X,B,X,O,X,O,X,O,B) = Win
+	tictactoe(X,B,X,O,X,O,X,B,O) = Win
+	tictactoe(X,B,X,O,X,O,O,B,X) = Win
+	tictactoe(X,B,X,O,X,O,B,O,X) = Win
+	tictactoe(X,B,X,O,X,B,X,O,O) = Win
+	tictactoe(X,B,X,O,X,B,O,O,X) = Win
+	tictactoe(X,B,X,O,O,X,O,B,X) = Win
+	tictactoe(X,B,X,O,O,X,B,O,X) = Win
+	tictactoe(X,B,X,O,B,X,O,O,X) = Win
+	tictactoe(X,B,X,B,X,O,X,O,O) = Win
+	tictactoe(X,B,X,B,X,O,O,O,X) = Win
+	tictactoe(X,B,X,B,O,X,O,O,X) = Win
+	tictactoe(X,B,O,X,X,X,O,O,B) = Win
+	tictactoe(X,B,O,X,X,X,O,B,O) = Win
+	tictactoe(X,B,O,X,X,X,B,O,O) = Win
+	tictactoe(X,B,O,X,X,O,X,O,B) = Win
+	tictactoe(X,B,O,X,X,O,O,B,X) = Win
+	tictactoe(X,B,O,X,X,O,B,O,X) = Win
+	tictactoe(X,B,O,X,X,B,X,O,O) = Win
+	tictactoe(X,B,O,X,X,B,O,O,X) = Win
+	tictactoe(X,B,O,X,O,X,X,O,B) = Win
+	tictactoe(X,B,O,X,O,X,X,B,O) = Win
+	tictactoe(X,B,O,X,O,O,X,X,B) = Win
+	tictactoe(X,B,O,X,O,O,X,B,X) = Win
+	tictactoe(X,B,O,X,O,B,X,X,O) = Win
+	tictactoe(X,B,O,X,O,B,X,O,X) = Win
+	tictactoe(X,B,O,X,O,B,X,B,B) = Win
+	tictactoe(X,B,O,X,B,X,X,O,O) = Win
+	tictactoe(X,B,O,X,B,O,X,O,X) = Win
+	tictactoe(X,B,O,X,B,O,X,B,B) = Win
+	tictactoe(X,B,O,X,B,B,X,O,B) = Win
+	tictactoe(X,B,O,X,B,B,X,B,O) = Win
+	tictactoe(X,B,O,O,X,X,O,B,X) = Win
+	tictactoe(X,B,O,O,X,X,B,O,X) = Win
+	tictactoe(X,B,O,O,X,O,X,B,X) = Win
+	tictactoe(X,B,O,O,X,O,B,X,X) = Win
+	tictactoe(X,B,O,O,X,B,X,O,X) = Win
+	tictactoe(X,B,O,O,X,B,O,X,X) = Win
+	tictactoe(X,B,O,O,X,B,B,B,X) = Win
+	tictactoe(X,B,O,O,O,B,X,X,X) = Win
+	tictactoe(X,B,O,O,B,O,X,X,X) = Win
+	tictactoe(X,B,O,B,X,X,O,O,X) = Win
+	tictactoe(X,B,O,B,X,O,X,O,X) = Win
+	tictactoe(X,B,O,B,X,O,O,X,X) = Win
+	tictactoe(X,B,O,B,X,O,B,B,X) = Win
+	tictactoe(X,B,O,B,X,B,O,B,X) = Win
+	tictactoe(X,B,O,B,X,B,B,O,X) = Win
+	tictactoe(X,B,O,B,O,O,X,X,X) = Win
+	tictactoe(X,B,B,X,X,O,X,O,O) = Win
+	tictactoe(X,B,B,X,X,O,O,O,X) = Win
+	tictactoe(X,B,B,X,O,X,X,O,O) = Win
+	tictactoe(X,B,B,X,O,O,X,X,O) = Win
+	tictactoe(X,B,B,X,O,O,X,O,X) = Win
+	tictactoe(X,B,B,X,O,O,X,B,B) = Win
+	tictactoe(X,B,B,X,O,B,X,O,B) = Win
+	tictactoe(X,B,B,X,O,B,X,B,O) = Win
+	tictactoe(X,B,B,X,B,O,X,O,B) = Win
+	tictactoe(X,B,B,X,B,O,X,B,O) = Win
+	tictactoe(X,B,B,X,B,B,X,O,O) = Win
+	tictactoe(X,B,B,O,X,X,O,O,X) = Win
+	tictactoe(X,B,B,O,X,O,X,O,X) = Win
+	tictactoe(X,B,B,O,X,O,O,X,X) = Win
+	tictactoe(X,B,B,O,X,O,B,B,X) = Win
+	tictactoe(X,B,B,O,X,B,O,B,X) = Win
+	tictactoe(X,B,B,O,X,B,B,O,X) = Win
+	tictactoe(X,B,B,B,X,O,O,B,X) = Win
+	tictactoe(X,B,B,B,X,O,B,O,X) = Win
+	tictactoe(X,B,B,B,X,B,O,O,X) = Win
+	tictactoe(O,X,X,X,X,O,X,O,O) = Win
+	tictactoe(O,X,X,X,X,O,O,X,O) = Win
+	tictactoe(O,X,X,X,O,X,O,O,X) = Win
+	tictactoe(O,X,X,O,X,X,X,O,O) = Win
+	tictactoe(O,X,X,O,X,O,X,X,O) = Win
+	tictactoe(O,X,X,O,X,O,X,O,X) = Win
+	tictactoe(O,X,X,O,X,O,X,B,B) = Win
+	tictactoe(O,X,X,O,X,O,B,X,B) = Win
+	tictactoe(O,X,X,O,X,B,X,O,B) = Win
+	tictactoe(O,X,X,O,X,B,X,B,O) = Win
+	tictactoe(O,X,X,O,X,B,B,X,O) = Win
+	tictactoe(O,X,X,O,O,X,X,O,X) = Win
+	tictactoe(O,X,X,O,O,X,B,B,X) = Win
+	tictactoe(O,X,X,O,B,X,B,O,X) = Win
+	tictactoe(O,X,X,B,X,O,X,O,B) = Win
+	tictactoe(O,X,X,B,X,O,X,B,O) = Win
+	tictactoe(O,X,X,B,X,O,O,X,B) = Win
+	tictactoe(O,X,X,B,X,O,B,X,O) = Win
+	tictactoe(O,X,X,B,X,B,X,O,O) = Win
+	tictactoe(O,X,X,B,X,B,O,X,O) = Win
+	tictactoe(O,X,X,B,O,X,O,B,X) = Win
+	tictactoe(O,X,X,B,O,X,B,O,X) = Win
+	tictactoe(O,X,X,B,B,X,O,O,X) = Win
+	tictactoe(O,X,O,X,X,X,X,O,O) = Win
+	tictactoe(O,X,O,X,X,X,O,X,O) = Win
+	tictactoe(O,X,O,X,X,X,O,O,X) = Win
+	tictactoe(O,X,O,X,X,X,O,B,B) = Win
+	tictactoe(O,X,O,X,X,X,B,O,B) = Win
+	tictactoe(O,X,O,X,X,X,B,B,O) = Win
+	tictactoe(O,X,O,X,X,O,O,X,X) = Win
+	tictactoe(O,X,O,X,X,O,B,X,B) = Win
+	tictactoe(O,X,O,X,X,B,O,X,B) = Win
+	tictactoe(O,X,O,X,X,B,B,X,O) = Win
+	tictactoe(O,X,O,X,O,O,X,X,X) = Win
+	tictactoe(O,X,O,O,X,X,X,X,O) = Win
+	tictactoe(O,X,O,O,X,X,B,X,B) = Win
+	tictactoe(O,X,O,O,X,O,X,X,X) = Win
+	tictactoe(O,X,O,O,X,B,X,X,B) = Win
+	tictactoe(O,X,O,O,X,B,B,X,X) = Win
+	tictactoe(O,X,O,O,O,X,X,X,X) = Win
+	tictactoe(O,X,O,O,B,B,X,X,X) = Win
+	tictactoe(O,X,O,B,X,X,O,X,B) = Win
+	tictactoe(O,X,O,B,X,X,B,X,O) = Win
+	tictactoe(O,X,O,B,X,O,X,X,B) = Win
+	tictactoe(O,X,O,B,X,O,B,X,X) = Win
+	tictactoe(O,X,O,B,X,B,X,X,O) = Win
+	tictactoe(O,X,O,B,X,B,O,X,X) = Win
+	tictactoe(O,X,O,B,X,B,B,X,B) = Win
+	tictactoe(O,X,O,B,O,B,X,X,X) = Win
+	tictactoe(O,X,O,B,B,O,X,X,X) = Win
+	tictactoe(O,X,B,X,X,X,O,O,B) = Win
+	tictactoe(O,X,B,X,X,X,O,B,O) = Win
+	tictactoe(O,X,B,X,X,X,B,O,O) = Win
+	tictactoe(O,X,B,X,X,O,O,X,B) = Win
+	tictactoe(O,X,B,X,X,O,B,X,O) = Win
+	tictactoe(O,X,B,X,X,B,O,X,O) = Win
+	tictactoe(O,X,B,O,X,X,B,X,O) = Win
+	tictactoe(O,X,B,O,X,O,X,X,B) = Win
+	tictactoe(O,X,B,O,X,O,B,X,X) = Win
+	tictactoe(O,X,B,O,X,B,X,X,O) = Win
+	tictactoe(O,X,B,O,X,B,B,X,B) = Win
+	tictactoe(O,X,B,O,O,B,X,X,X) = Win
+	tictactoe(O,X,B,O,B,O,X,X,X) = Win
+	tictactoe(O,X,B,B,X,X,O,X,O) = Win
+	tictactoe(O,X,B,B,X,O,X,X,O) = Win
+	tictactoe(O,X,B,B,X,O,O,X,X) = Win
+	tictactoe(O,X,B,B,X,O,B,X,B) = Win
+	tictactoe(O,X,B,B,X,B,O,X,B) = Win
+	tictactoe(O,X,B,B,X,B,B,X,O) = Win
+	tictactoe(O,X,B,B,O,O,X,X,X) = Win
+	tictactoe(O,O,X,X,X,X,X,O,O) = Win
+	tictactoe(O,O,X,X,X,X,O,X,O) = Win
+	tictactoe(O,O,X,X,X,X,O,O,X) = Win
+	tictactoe(O,O,X,X,X,X,O,B,B) = Win
+	tictactoe(O,O,X,X,X,X,B,O,B) = Win
+	tictactoe(O,O,X,X,X,X,B,B,O) = Win
+	tictactoe(O,O,X,X,X,O,X,X,O) = Win
+	tictactoe(O,O,X,X,X,O,X,O,X) = Win
+	tictactoe(O,O,X,X,X,O,X,B,B) = Win
+	tictactoe(O,O,X,X,X,B,X,O,B) = Win
+	tictactoe(O,O,X,X,X,B,X,B,O) = Win
+	tictactoe(O,O,X,X,O,X,O,X,X) = Win
+	tictactoe(O,O,X,X,O,X,B,B,X) = Win
+	tictactoe(O,O,X,X,O,O,X,X,X) = Win
+	tictactoe(O,O,X,X,B,X,O,B,X) = Win
+	tictactoe(O,O,X,X,B,X,B,O,X) = Win
+	tictactoe(O,O,X,O,X,X,X,X,O) = Win
+	tictactoe(O,O,X,O,X,X,X,O,X) = Win
+	tictactoe(O,O,X,O,X,X,X,B,B) = Win
+	tictactoe(O,O,X,O,X,X,B,B,X) = Win
+	tictactoe(O,O,X,O,X,O,X,X,X) = Win
+	tictactoe(O,O,X,O,X,B,X,X,B) = Win
+	tictactoe(O,O,X,O,X,B,X,B,X) = Win
+	tictactoe(O,O,X,O,O,X,X,X,X) = Win
+	tictactoe(O,O,X,O,B,X,X,B,X) = Win
+	tictactoe(O,O,X,O,B,X,B,X,X) = Win
+	tictactoe(O,O,X,O,B,B,X,X,X) = Win
+	tictactoe(O,O,X,B,X,X,X,O,B) = Win
+	tictactoe(O,O,X,B,X,X,X,B,O) = Win
+	tictactoe(O,O,X,B,X,X,O,B,X) = Win
+	tictactoe(O,O,X,B,X,X,B,O,X) = Win
+	tictactoe(O,O,X,B,X,O,X,X,B) = Win
+	tictactoe(O,O,X,B,X,O,X,B,X) = Win
+	tictactoe(O,O,X,B,X,B,X,X,O) = Win
+	tictactoe(O,O,X,B,X,B,X,O,X) = Win
+	tictactoe(O,O,X,B,X,B,X,B,B) = Win
+	tictactoe(O,O,X,B,O,X,X,B,X) = Win
+	tictactoe(O,O,X,B,O,X,B,X,X) = Win
+	tictactoe(O,O,X,B,O,B,X,X,X) = Win
+	tictactoe(O,O,X,B,B,X,X,O,X) = Win
+	tictactoe(O,O,X,B,B,X,O,X,X) = Win
+	tictactoe(O,O,X,B,B,X,B,B,X) = Win
+	tictactoe(O,O,X,B,B,O,X,X,X) = Win
+	tictactoe(O,O,B,X,X,X,X,O,B) = Win
+	tictactoe(O,O,B,X,X,X,X,B,O) = Win
+	tictactoe(O,O,B,X,X,X,O,X,B) = Win
+	tictactoe(O,O,B,X,X,X,O,B,X) = Win
+	tictactoe(O,O,B,X,X,X,B,X,O) = Win
+	tictactoe(O,O,B,X,X,X,B,O,X) = Win
+	tictactoe(O,O,B,X,X,X,B,B,B) = Win
+	tictactoe(O,O,B,X,O,B,X,X,X) = Win
+	tictactoe(O,O,B,X,B,O,X,X,X) = Win
+	tictactoe(O,O,B,O,X,B,X,X,X) = Win
+	tictactoe(O,O,B,O,B,X,X,X,X) = Win
+	tictactoe(O,O,B,B,X,O,X,X,X) = Win
+	tictactoe(O,O,B,B,O,X,X,X,X) = Win
+	tictactoe(O,O,B,B,B,B,X,X,X) = Win
+	tictactoe(O,B,X,X,X,X,O,O,B) = Win
+	tictactoe(O,B,X,X,X,X,O,B,O) = Win
+	tictactoe(O,B,X,X,X,X,B,O,O) = Win
+	tictactoe(O,B,X,X,X,O,X,O,B) = Win
+	tictactoe(O,B,X,X,X,O,X,B,O) = Win
+	tictactoe(O,B,X,X,X,B,X,O,O) = Win
+	tictactoe(O,B,X,X,O,X,O,B,X) = Win
+	tictactoe(O,B,X,X,O,X,B,O,X) = Win
+	tictactoe(O,B,X,X,B,X,O,O,X) = Win
+	tictactoe(O,B,X,O,X,X,X,O,B) = Win
+	tictactoe(O,B,X,O,X,X,X,B,O) = Win
+	tictactoe(O,B,X,O,X,X,B,O,X) = Win
+	tictactoe(O,B,X,O,X,O,X,X,B) = Win
+	tictactoe(O,B,X,O,X,O,X,B,X) = Win
+	tictactoe(O,B,X,O,X,B,X,X,O) = Win
+	tictactoe(O,B,X,O,X,B,X,O,X) = Win
+	tictactoe(O,B,X,O,X,B,X,B,B) = Win
+	tictactoe(O,B,X,O,O,X,X,B,X) = Win
+	tictactoe(O,B,X,O,O,X,B,X,X) = Win
+	tictactoe(O,B,X,O,O,B,X,X,X) = Win
+	tictactoe(O,B,X,O,B,X,X,O,X) = Win
+	tictactoe(O,B,X,O,B,X,B,B,X) = Win
+	tictactoe(O,B,X,O,B,O,X,X,X) = Win
+	tictactoe(O,B,X,B,X,X,X,O,O) = Win
+	tictactoe(O,B,X,B,X,X,O,O,X) = Win
+	tictactoe(O,B,X,B,X,O,X,X,O) = Win
+	tictactoe(O,B,X,B,X,O,X,O,X) = Win
+	tictactoe(O,B,X,B,X,O,X,B,B) = Win
+	tictactoe(O,B,X,B,X,B,X,O,B) = Win
+	tictactoe(O,B,X,B,X,B,X,B,O) = Win
+	tictactoe(O,B,X,B,O,X,X,O,X) = Win
+	tictactoe(O,B,X,B,O,X,O,X,X) = Win
+	tictactoe(O,B,X,B,O,X,B,B,X) = Win
+	tictactoe(O,B,X,B,O,O,X,X,X) = Win
+	tictactoe(O,B,X,B,B,X,O,B,X) = Win
+	tictactoe(O,B,X,B,B,X,B,O,X) = Win
+	tictactoe(O,B,O,X,X,X,X,O,B) = Win
+	tictactoe(O,B,O,X,X,X,X,B,O) = Win
+	tictactoe(O,B,O,X,X,X,O,X,B) = Win
+	tictactoe(O,B,O,X,X,X,O,B,X) = Win
+	tictactoe(O,B,O,X,X,X,B,X,O) = Win
+	tictactoe(O,B,O,X,X,X,B,O,X) = Win
+	tictactoe(O,B,O,X,X,X,B,B,B) = Win
+	tictactoe(O,B,O,X,O,B,X,X,X) = Win
+	tictactoe(O,B,O,X,B,O,X,X,X) = Win
+	tictactoe(O,B,O,O,X,B,X,X,X) = Win
+	tictactoe(O,B,O,O,B,X,X,X,X) = Win
+	tictactoe(O,B,O,B,X,O,X,X,X) = Win
+	tictactoe(O,B,O,B,O,X,X,X,X) = Win
+	tictactoe(O,B,O,B,B,B,X,X,X) = Win
+	tictactoe(O,B,B,X,X,X,X,O,O) = Win
+	tictactoe(O,B,B,X,X,X,O,X,O) = Win
+	tictactoe(O,B,B,X,X,X,O,O,X) = Win
+	tictactoe(O,B,B,X,X,X,O,B,B) = Win
+	tictactoe(O,B,B,X,X,X,B,O,B) = Win
+	tictactoe(O,B,B,X,X,X,B,B,O) = Win
+	tictactoe(O,B,B,X,O,O,X,X,X) = Win
+	tictactoe(O,B,B,O,X,O,X,X,X) = Win
+	tictactoe(O,B,B,O,O,X,X,X,X) = Win
+	tictactoe(O,B,B,O,B,B,X,X,X) = Win
+	tictactoe(O,B,B,B,O,B,X,X,X) = Win
+	tictactoe(O,B,B,B,B,O,X,X,X) = Win
+	tictactoe(B,X,X,O,X,O,X,O,B) = Win
+	tictactoe(B,X,X,O,X,O,X,B,O) = Win
+	tictactoe(B,X,X,O,X,O,O,X,B) = Win
+	tictactoe(B,X,X,O,X,O,B,X,O) = Win
+	tictactoe(B,X,X,O,X,B,X,O,O) = Win
+	tictactoe(B,X,X,O,X,B,O,X,O) = Win
+	tictactoe(B,X,X,O,O,X,O,B,X) = Win
+	tictactoe(B,X,X,O,O,X,B,O,X) = Win
+	tictactoe(B,X,X,O,B,X,O,O,X) = Win
+	tictactoe(B,X,X,B,X,O,X,O,O) = Win
+	tictactoe(B,X,X,B,X,O,O,X,O) = Win
+	tictactoe(B,X,X,B,O,X,O,O,X) = Win
+	tictactoe(B,X,O,X,X,X,O,O,B) = Win
+	tictactoe(B,X,O,X,X,X,O,B,O) = Win
+	tictactoe(B,X,O,X,X,X,B,O,O) = Win
+	tictactoe(B,X,O,X,X,O,O,X,B) = Win
+	tictactoe(B,X,O,X,X,B,O,X,O) = Win
+	tictactoe(B,X,O,O,X,X,O,X,B) = Win
+	tictactoe(B,X,O,O,X,X,B,X,O) = Win
+	tictactoe(B,X,O,O,X,O,X,X,B) = Win
+	tictactoe(B,X,O,O,X,O,B,X,X) = Win
+	tictactoe(B,X,O,O,X,B,X,X,O) = Win
+	tictactoe(B,X,O,O,X,B,O,X,X) = Win
+	tictactoe(B,X,O,O,X,B,B,X,B) = Win
+	tictactoe(B,X,O,O,O,B,X,X,X) = Win
+	tictactoe(B,X,O,O,B,O,X,X,X) = Win
+	tictactoe(B,X,O,B,X,X,O,X,O) = Win
+	tictactoe(B,X,O,B,X,O,O,X,X) = Win
+	tictactoe(B,X,O,B,X,O,B,X,B) = Win
+	tictactoe(B,X,O,B,X,B,O,X,B) = Win
+	tictactoe(B,X,O,B,X,B,B,X,O) = Win
+	tictactoe(B,X,O,B,O,O,X,X,X) = Win
+	tictactoe(B,X,B,X,X,O,O,X,O) = Win
+	tictactoe(B,X,B,O,X,X,O,X,O) = Win
+	tictactoe(B,X,B,O,X,O,X,X,O) = Win
+	tictactoe(B,X,B,O,X,O,O,X,X) = Win
+	tictactoe(B,X,B,O,X,O,B,X,B) = Win
+	tictactoe(B,X,B,O,X,B,O,X,B) = Win
+	tictactoe(B,X,B,O,X,B,B,X,O) = Win
+	tictactoe(B,X,B,B,X,O,O,X,B) = Win
+	tictactoe(B,X,B,B,X,O,B,X,O) = Win
+	tictactoe(B,X,B,B,X,B,O,X,O) = Win
+	tictactoe(B,O,X,X,X,X,O,O,B) = Win
+	tictactoe(B,O,X,X,X,X,O,B,O) = Win
+	tictactoe(B,O,X,X,X,X,B,O,O) = Win
+	tictactoe(B,O,X,X,X,O,X,O,B) = Win
+	tictactoe(B,O,X,X,X,O,X,B,O) = Win
+	tictactoe(B,O,X,X,X,B,X,O,O) = Win
+	tictactoe(B,O,X,X,O,X,O,B,X) = Win
+	tictactoe(B,O,X,X,B,X,O,O,X) = Win
+	tictactoe(B,O,X,O,X,X,X,O,B) = Win
+	tictactoe(B,O,X,O,X,X,X,B,O) = Win
+	tictactoe(B,O,X,O,X,X,O,B,X) = Win
+	tictactoe(B,O,X,O,X,X,B,O,X) = Win
+	tictactoe(B,O,X,O,X,O,X,X,B) = Win
+	tictactoe(B,O,X,O,X,O,X,B,X) = Win
+	tictactoe(B,O,X,O,X,B,X,X,O) = Win
+	tictactoe(B,O,X,O,X,B,X,O,X) = Win
+	tictactoe(B,O,X,O,X,B,X,B,B) = Win
+	tictactoe(B,O,X,O,O,X,X,B,X) = Win
+	tictactoe(B,O,X,O,O,X,B,X,X) = Win
+	tictactoe(B,O,X,O,O,B,X,X,X) = Win
+	tictactoe(B,O,X,O,B,X,X,O,X) = Win
+	tictactoe(B,O,X,O,B,X,O,X,X) = Win
+	tictactoe(B,O,X,O,B,X,B,B,X) = Win
+	tictactoe(B,O,X,O,B,O,X,X,X) = Win
+	tictactoe(B,O,X,B,X,X,X,O,O) = Win
+	tictactoe(B,O,X,B,X,X,O,O,X) = Win
+	tictactoe(B,O,X,B,X,O,X,X,O) = Win
+	tictactoe(B,O,X,B,X,O,X,O,X) = Win
+	tictactoe(B,O,X,B,X,O,X,B,B) = Win
+	tictactoe(B,O,X,B,X,B,X,O,B) = Win
+	tictactoe(B,O,X,B,X,B,X,B,O) = Win
+	tictactoe(B,O,X,B,O,X,O,X,X) = Win
+	tictactoe(B,O,X,B,O,X,B,B,X) = Win
+	tictactoe(B,O,X,B,O,O,X,X,X) = Win
+	tictactoe(B,O,X,B,B,X,O,B,X) = Win
+	tictactoe(B,O,X,B,B,X,B,O,X) = Win
+	tictactoe(B,O,O,X,X,X,X,O,B) = Win
+	tictactoe(B,O,O,X,X,X,X,B,O) = Win
+	tictactoe(B,O,O,X,X,X,O,X,B) = Win
+	tictactoe(B,O,O,X,X,X,O,B,X) = Win
+	tictactoe(B,O,O,X,X,X,B,X,O) = Win
+	tictactoe(B,O,O,X,X,X,B,O,X) = Win
+	tictactoe(B,O,O,X,X,X,B,B,B) = Win
+	tictactoe(B,O,O,X,O,B,X,X,X) = Win
+	tictactoe(B,O,O,X,B,O,X,X,X) = Win
+	tictactoe(B,O,O,O,X,B,X,X,X) = Win
+	tictactoe(B,O,O,O,B,X,X,X,X) = Win
+	tictactoe(B,O,O,B,X,O,X,X,X) = Win
+	tictactoe(B,O,O,B,O,X,X,X,X) = Win
+	tictactoe(B,O,O,B,B,B,X,X,X) = Win
+	tictactoe(B,O,B,X,X,X,X,O,O) = Win
+	tictactoe(B,O,B,X,X,X,O,X,O) = Win
+	tictactoe(B,O,B,X,X,X,O,O,X) = Win
+	tictactoe(B,O,B,X,X,X,O,B,B) = Win
+	tictactoe(B,O,B,X,X,X,B,O,B) = Win
+	tictactoe(B,O,B,X,X,X,B,B,O) = Win
+	tictactoe(B,O,B,X,O,O,X,X,X) = Win
+	tictactoe(B,O,B,O,X,O,X,X,X) = Win
+	tictactoe(B,O,B,O,O,X,X,X,X) = Win
+	tictactoe(B,O,B,O,B,B,X,X,X) = Win
+	tictactoe(B,O,B,B,O,B,X,X,X) = Win
+	tictactoe(B,O,B,B,B,O,X,X,X) = Win
+	tictactoe(B,B,X,X,X,O,X,O,O) = Win
+	tictactoe(B,B,X,X,O,X,O,O,X) = Win
+	tictactoe(B,B,X,O,X,X,X,O,O) = Win
+	tictactoe(B,B,X,O,X,X,O,O,X) = Win
+	tictactoe(B,B,X,O,X,O,X,X,O) = Win
+	tictactoe(B,B,X,O,X,O,X,O,X) = Win
+	tictactoe(B,B,X,O,X,O,X,B,B) = Win
+	tictactoe(B,B,X,O,X,B,X,O,B) = Win
+	tictactoe(B,B,X,O,X,B,X,B,O) = Win
+	tictactoe(B,B,X,O,O,X,X,O,X) = Win
+	tictactoe(B,B,X,O,O,X,O,X,X) = Win
+	tictactoe(B,B,X,O,O,X,B,B,X) = Win
+	tictactoe(B,B,X,O,B,X,O,B,X) = Win
+	tictactoe(B,B,X,O,B,X,B,O,X) = Win
+	tictactoe(B,B,X,B,X,O,X,O,B) = Win
+	tictactoe(B,B,X,B,X,O,X,B,O) = Win
+	tictactoe(B,B,X,B,X,B,X,O,O) = Win
+	tictactoe(B,B,X,B,O,X,O,B,X) = Win
+	tictactoe(B,B,X,B,O,X,B,O,X) = Win
+	tictactoe(B,B,X,B,B,X,O,O,X) = Win
+	tictactoe(B,B,O,X,X,X,X,O,O) = Win
+	tictactoe(B,B,O,X,X,X,O,X,O) = Win
+	tictactoe(B,B,O,X,X,X,O,O,X) = Win
+	tictactoe(B,B,O,X,X,X,O,B,B) = Win
+	tictactoe(B,B,O,X,X,X,B,O,B) = Win
+	tictactoe(B,B,O,X,X,X,B,B,O) = Win
+	tictactoe(B,B,O,X,O,O,X,X,X) = Win
+	tictactoe(B,B,O,O,X,O,X,X,X) = Win
+	tictactoe(B,B,O,O,O,X,X,X,X) = Win
+	tictactoe(B,B,O,O,B,B,X,X,X) = Win
+	tictactoe(B,B,O,B,O,B,X,X,X) = Win
+	tictactoe(B,B,O,B,B,O,X,X,X) = Win
+	tictactoe(B,B,B,X,X,X,O,O,B) = Win
+	tictactoe(B,B,B,X,X,X,O,B,O) = Win
+	tictactoe(B,B,B,X,X,X,B,O,O) = Win
+	tictactoe(B,B,B,O,O,B,X,X,X) = Win
+	tictactoe(B,B,B,O,B,O,X,X,X) = Win
+	tictactoe(B,B,B,B,O,O,X,X,X) = Win
+	tictactoe(X,X,O,X,X,O,O,B,O) = Lose
+	tictactoe(X,X,O,X,X,O,B,O,O) = Lose
+	tictactoe(X,X,O,X,X,B,O,O,O) = Lose
+	tictactoe(X,X,O,X,O,X,O,O,B) = Lose
+	tictactoe(X,X,O,X,O,X,O,B,O) = Lose
+	tictactoe(X,X,O,X,O,O,O,X,B) = Lose
+	tictactoe(X,X,O,X,O,O,O,B,X) = Lose
+	tictactoe(X,X,O,X,O,O,B,X,O) = Lose
+	tictactoe(X,X,O,X,O,B,O,X,O) = Lose
+	tictactoe(X,X,O,X,O,B,O,O,X) = Lose
+	tictactoe(X,X,O,X,O,B,O,B,B) = Lose
+	tictactoe(X,X,O,X,B,X,O,O,O) = Lose
+	tictactoe(X,X,O,X,B,O,O,X,O) = Lose
+	tictactoe(X,X,O,X,B,O,B,B,O) = Lose
+	tictactoe(X,X,O,O,X,O,X,B,O) = Lose
+	tictactoe(X,X,O,O,O,X,O,X,B) = Lose
+	tictactoe(X,X,O,O,O,X,O,B,X) = Lose
+	tictactoe(X,X,O,O,O,O,X,X,B) = Lose
+	tictactoe(X,X,O,O,O,O,X,B,X) = Lose
+	tictactoe(X,X,O,O,O,O,B,X,X) = Lose
+	tictactoe(X,X,O,O,O,B,O,X,X) = Lose
+	tictactoe(X,X,O,O,B,O,X,X,O) = Lose
+	tictactoe(X,X,O,B,X,X,O,O,O) = Lose
+	tictactoe(X,X,O,B,X,O,X,O,O) = Lose
+	tictactoe(X,X,O,B,X,O,B,B,O) = Lose
+	tictactoe(X,X,O,B,O,X,O,X,O) = Lose
+	tictactoe(X,X,O,B,O,X,O,O,X) = Lose
+	tictactoe(X,X,O,B,O,X,O,B,B) = Lose
+	tictactoe(X,X,O,B,O,O,X,X,O) = Lose
+	tictactoe(X,X,O,B,O,O,O,X,X) = Lose
+	tictactoe(X,X,O,B,O,B,O,X,B) = Lose
+	tictactoe(X,X,O,B,O,B,O,B,X) = Lose
+	tictactoe(X,X,O,B,B,O,X,B,O) = Lose
+	tictactoe(X,X,O,B,B,O,B,X,O) = Lose
+	tictactoe(X,X,B,X,X,O,O,O,O) = Lose
+	tictactoe(X,X,B,X,O,X,O,O,O) = Lose
+	tictactoe(X,X,B,X,B,B,O,O,O) = Lose
+	tictactoe(X,X,B,O,X,X,O,O,O) = Lose
+	tictactoe(X,X,B,O,O,O,X,X,O) = Lose
+	tictactoe(X,X,B,O,O,O,X,O,X) = Lose
+	tictactoe(X,X,B,O,O,O,X,B,B) = Lose
+	tictactoe(X,X,B,O,O,O,O,X,X) = Lose
+	tictactoe(X,X,B,O,O,O,B,X,B) = Lose
+	tictactoe(X,X,B,O,O,O,B,B,X) = Lose
+	tictactoe(X,X,B,B,X,B,O,O,O) = Lose
+	tictactoe(X,X,B,B,B,X,O,O,O) = Lose
+	tictactoe(X,O,X,X,X,B,O,O,O) = Lose
+	tictactoe(X,O,X,X,O,X,O,O,B) = Lose
+	tictactoe(X,O,X,X,O,X,B,O,O) = Lose
+	tictactoe(X,O,X,X,O,O,B,O,X) = Lose
+	tictactoe(X,O,X,X,O,B,O,O,X) = Lose
+	tictactoe(X,O,X,X,O,B,B,O,B) = Lose
+	tictactoe(X,O,X,X,B,X,O,O,O) = Lose
+	tictactoe(X,O,X,O,O,X,X,O,B) = Lose
+	tictactoe(X,O,X,O,O,O,X,X,B) = Lose
+	tictactoe(X,O,X,O,O,O,X,B,X) = Lose
+	tictactoe(X,O,X,O,O,O,B,X,X) = Lose
+	tictactoe(X,O,X,O,O,B,X,O,X) = Lose
+	tictactoe(X,O,X,B,X,X,O,O,O) = Lose
+	tictactoe(X,O,X,B,O,X,X,O,O) = Lose
+	tictactoe(X,O,X,B,O,X,B,O,B) = Lose
+	tictactoe(X,O,X,B,O,O,X,O,X) = Lose
+	tictactoe(X,O,X,B,O,B,X,O,B) = Lose
+	tictactoe(X,O,X,B,O,B,B,O,X) = Lose
+	tictactoe(X,O,O,X,X,O,B,X,O) = Lose
+	tictactoe(X,O,O,X,O,X,O,X,B) = Lose
+	tictactoe(X,O,O,X,O,X,O,B,X) = Lose
+	tictactoe(X,O,O,X,O,X,B,O,X) = Lose
+	tictactoe(X,O,O,X,O,B,O,X,X) = Lose
+	tictactoe(X,O,O,B,X,O,X,X,O) = Lose
+	tictactoe(X,O,O,B,O,X,X,O,X) = Lose
+	tictactoe(X,O,O,B,O,X,O,X,X) = Lose
+	tictactoe(X,O,B,X,O,X,O,O,X) = Lose
+	tictactoe(X,O,B,X,O,X,B,O,B) = Lose
+	tictactoe(X,O,B,X,O,B,B,O,X) = Lose
+	tictactoe(X,O,B,O,O,X,X,O,X) = Lose
+	tictactoe(X,O,B,B,O,X,X,O,B) = Lose
+	tictactoe(X,O,B,B,O,X,B,O,X) = Lose
+	tictactoe(X,O,B,B,O,B,X,O,X) = Lose
+	tictactoe(X,B,X,X,X,O,O,O,O) = Lose
+	tictactoe(X,B,X,X,O,X,O,O,O) = Lose
+	tictactoe(X,B,X,X,B,B,O,O,O) = Lose
+	tictactoe(X,B,X,O,X,X,O,O,O) = Lose
+	tictactoe(X,B,X,O,O,O,X,X,O) = Lose
+	tictactoe(X,B,X,O,O,O,X,O,X) = Lose
+	tictactoe(X,B,X,O,O,O,X,B,B) = Lose
+	tictactoe(X,B,X,O,O,O,O,X,X) = Lose
+	tictactoe(X,B,X,O,O,O,B,X,B) = Lose
+	tictactoe(X,B,X,O,O,O,B,B,X) = Lose
+	tictactoe(X,B,X,B,X,B,O,O,O) = Lose
+	tictactoe(X,B,X,B,B,X,O,O,O) = Lose
+	tictactoe(X,B,O,X,X,O,O,X,O) = Lose
+	tictactoe(X,B,O,X,X,O,B,B,O) = Lose
+	tictactoe(X,B,O,X,O,X,O,X,O) = Lose
+	tictactoe(X,B,O,X,O,X,O,O,X) = Lose
+	tictactoe(X,B,O,X,O,X,O,B,B) = Lose
+	tictactoe(X,B,O,X,O,O,O,X,X) = Lose
+	tictactoe(X,B,O,X,O,B,O,X,B) = Lose
+	tictactoe(X,B,O,X,O,B,O,B,X) = Lose
+	tictactoe(X,B,O,X,B,O,B,X,O) = Lose
+	tictactoe(X,B,O,O,X,O,X,X,O) = Lose
+	tictactoe(X,B,O,O,O,X,O,X,X) = Lose
+	tictactoe(X,B,O,B,X,O,X,B,O) = Lose
+	tictactoe(X,B,O,B,X,O,B,X,O) = Lose
+	tictactoe(X,B,O,B,O,X,O,X,B) = Lose
+	tictactoe(X,B,O,B,O,X,O,B,X) = Lose
+	tictactoe(X,B,O,B,O,B,O,X,X) = Lose
+	tictactoe(X,B,O,B,B,O,X,X,O) = Lose
+	tictactoe(X,B,B,X,X,B,O,O,O) = Lose
+	tictactoe(X,B,B,X,B,X,O,O,O) = Lose
+	tictactoe(X,B,B,O,O,O,X,X,B) = Lose
+	tictactoe(X,B,B,O,O,O,X,B,X) = Lose
+	tictactoe(X,B,B,O,O,O,B,X,X) = Lose
+	tictactoe(X,B,B,B,X,X,O,O,O) = Lose
+	tictactoe(O,X,X,X,X,B,O,O,O) = Lose
+	tictactoe(O,X,X,X,O,X,O,B,O) = Lose
+	tictactoe(O,X,X,X,O,X,B,O,O) = Lose
+	tictactoe(O,X,X,X,O,O,X,B,O) = Lose
+	tictactoe(O,X,X,X,O,O,B,X,O) = Lose
+	tictactoe(O,X,X,X,O,B,X,O,O) = Lose
+	tictactoe(O,X,X,X,O,B,O,X,O) = Lose
+	tictactoe(O,X,X,X,O,B,B,B,O) = Lose
+	tictactoe(O,X,X,X,B,X,O,O,O) = Lose
+	tictactoe(O,X,X,O,X,X,O,O,B) = Lose
+	tictactoe(O,X,X,O,X,X,O,B,O) = Lose
+	tictactoe(O,X,X,O,X,O,O,B,X) = Lose
+	tictactoe(O,X,X,O,X,B,O,O,X) = Lose
+	tictactoe(O,X,X,O,X,B,O,B,B) = Lose
+	tictactoe(O,X,X,O,O,X,X,B,O) = Lose
+	tictactoe(O,X,X,O,O,X,O,X,B) = Lose
+	tictactoe(O,X,X,O,O,X,B,X,O) = Lose
+	tictactoe(O,X,X,O,O,O,X,X,B) = Lose
+	tictactoe(O,X,X,O,O,O,X,B,X) = Lose
+	tictactoe(O,X,X,O,O,O,B,X,X) = Lose
+	tictactoe(O,X,X,O,O,B,X,X,O) = Lose
+	tictactoe(O,X,X,O,O,B,O,X,X) = Lose
+	tictactoe(O,X,X,O,B,X,O,X,O) = Lose
+	tictactoe(O,X,X,O,B,X,O,B,B) = Lose
+	tictactoe(O,X,X,O,B,O,O,X,X) = Lose
+	tictactoe(O,X,X,O,B,B,O,X,B) = Lose
+	tictactoe(O,X,X,O,B,B,O,B,X) = Lose
+	tictactoe(O,X,X,B,X,X,O,O,O) = Lose
+	tictactoe(O,X,X,B,O,X,X,O,O) = Lose
+	tictactoe(O,X,X,B,O,X,O,X,O) = Lose
+	tictactoe(O,X,X,B,O,X,B,B,O) = Lose
+	tictactoe(O,X,X,B,O,O,X,X,O) = Lose
+	tictactoe(O,X,X,B,O,B,X,B,O) = Lose
+	tictactoe(O,X,X,B,O,B,B,X,O) = Lose
+	tictactoe(O,X,O,X,X,O,X,B,O) = Lose
+	tictactoe(O,X,O,X,O,X,X,B,O) = Lose
+	tictactoe(O,X,O,X,O,X,O,X,B) = Lose
+	tictactoe(O,X,O,X,O,X,O,B,X) = Lose
+	tictactoe(O,X,O,X,O,X,B,X,O) = Lose
+	tictactoe(O,X,O,X,O,B,X,X,O) = Lose
+	tictactoe(O,X,O,X,O,B,O,X,X) = Lose
+	tictactoe(O,X,O,X,B,O,X,X,O) = Lose
+	tictactoe(O,X,O,O,X,X,O,B,X) = Lose
+	tictactoe(O,X,O,O,B,X,O,X,X) = Lose
+	tictactoe(O,X,O,B,O,X,X,X,O) = Lose
+	tictactoe(O,X,O,B,O,X,O,X,X) = Lose
+	tictactoe(O,X,B,X,O,X,X,O,O) = Lose
+	tictactoe(O,X,B,X,O,X,O,X,O) = Lose
+	tictactoe(O,X,B,X,O,X,B,B,O) = Lose
+	tictactoe(O,X,B,X,O,O,X,X,O) = Lose
+	tictactoe(O,X,B,X,O,B,X,B,O) = Lose
+	tictactoe(O,X,B,X,O,B,B,X,O) = Lose
+	tictactoe(O,X,B,O,X,X,O,O,X) = Lose
+	tictactoe(O,X,B,O,X,X,O,B,B) = Lose
+	tictactoe(O,X,B,O,X,B,O,B,X) = Lose
+	tictactoe(O,X,B,O,O,X,X,X,O) = Lose
+	tictactoe(O,X,B,O,O,X,O,X,X) = Lose
+	tictactoe(O,X,B,O,B,X,O,X,B) = Lose
+	tictactoe(O,X,B,O,B,X,O,B,X) = Lose
+	tictactoe(O,X,B,O,B,B,O,X,X) = Lose
+	tictactoe(O,X,B,B,O,X,X,B,O) = Lose
+	tictactoe(O,X,B,B,O,X,B,X,O) = Lose
+	tictactoe(O,X,B,B,O,B,X,X,O) = Lose
+	tictactoe(O,O,X,X,O,X,X,O,B) = Lose
+	tictactoe(O,O,X,X,O,X,X,B,O) = Lose
+	tictactoe(O,O,X,X,O,X,B,X,O) = Lose
+	tictactoe(O,O,X,X,O,B,X,X,O) = Lose
+	tictactoe(O,O,X,X,O,B,X,O,X) = Lose
+	tictactoe(O,O,X,O,X,X,O,X,B) = Lose
+	tictactoe(O,O,X,O,X,B,O,X,X) = Lose
+	tictactoe(O,O,X,B,O,X,X,X,O) = Lose
+	tictactoe(O,O,O,X,X,O,X,X,B) = Lose
+	tictactoe(O,O,O,X,X,O,X,B,X) = Lose
+	tictactoe(O,O,O,X,X,O,B,X,X) = Lose
+	tictactoe(O,O,O,X,X,B,X,X,O) = Lose
+	tictactoe(O,O,O,X,X,B,X,O,X) = Lose
+	tictactoe(O,O,O,X,X,B,X,B,B) = Lose
+	tictactoe(O,O,O,X,X,B,O,X,X) = Lose
+	tictactoe(O,O,O,X,X,B,B,X,B) = Lose
+	tictactoe(O,O,O,X,X,B,B,B,X) = Lose
+	tictactoe(O,O,O,X,O,X,X,X,B) = Lose
+	tictactoe(O,O,O,X,O,X,X,B,X) = Lose
+	tictactoe(O,O,O,X,O,X,B,X,X) = Lose
+	tictactoe(O,O,O,X,B,X,X,X,O) = Lose
+	tictactoe(O,O,O,X,B,X,X,O,X) = Lose
+	tictactoe(O,O,O,X,B,X,X,B,B) = Lose
+	tictactoe(O,O,O,X,B,X,O,X,X) = Lose
+	tictactoe(O,O,O,X,B,X,B,X,B) = Lose
+	tictactoe(O,O,O,X,B,X,B,B,X) = Lose
+	tictactoe(O,O,O,X,B,B,X,X,B) = Lose
+	tictactoe(O,O,O,X,B,B,X,B,X) = Lose
+	tictactoe(O,O,O,X,B,B,B,X,X) = Lose
+	tictactoe(O,O,O,O,X,X,X,X,B) = Lose
+	tictactoe(O,O,O,O,X,X,X,B,X) = Lose
+	tictactoe(O,O,O,O,X,X,B,X,X) = Lose
+	tictactoe(O,O,O,B,X,X,X,X,O) = Lose
+	tictactoe(O,O,O,B,X,X,X,O,X) = Lose
+	tictactoe(O,O,O,B,X,X,X,B,B) = Lose
+	tictactoe(O,O,O,B,X,X,O,X,X) = Lose
+	tictactoe(O,O,O,B,X,X,B,X,B) = Lose
+	tictactoe(O,O,O,B,X,X,B,B,X) = Lose
+	tictactoe(O,O,O,B,X,B,X,X,B) = Lose
+	tictactoe(O,O,O,B,X,B,X,B,X) = Lose
+	tictactoe(O,O,O,B,X,B,B,X,X) = Lose
+	tictactoe(O,O,O,B,B,X,X,X,B) = Lose
+	tictactoe(O,O,O,B,B,X,X,B,X) = Lose
+	tictactoe(O,O,O,B,B,X,B,X,X) = Lose
+	tictactoe(O,O,B,X,O,X,X,X,O) = Lose
+	tictactoe(O,O,B,X,O,X,X,O,X) = Lose
+	tictactoe(O,O,B,O,X,X,O,X,X) = Lose
+	tictactoe(O,B,X,X,O,X,X,O,O) = Lose
+	tictactoe(O,B,X,X,O,X,O,X,O) = Lose
+	tictactoe(O,B,X,X,O,X,B,B,O) = Lose
+	tictactoe(O,B,X,X,O,O,X,X,O) = Lose
+	tictactoe(O,B,X,X,O,B,X,B,O) = Lose
+	tictactoe(O,B,X,X,O,B,B,X,O) = Lose
+	tictactoe(O,B,X,O,X,X,O,X,O) = Lose
+	tictactoe(O,B,X,O,X,X,O,B,B) = Lose
+	tictactoe(O,B,X,O,X,O,O,X,X) = Lose
+	tictactoe(O,B,X,O,X,B,O,X,B) = Lose
+	tictactoe(O,B,X,O,X,B,O,B,X) = Lose
+	tictactoe(O,B,X,O,O,X,X,X,O) = Lose
+	tictactoe(O,B,X,O,B,X,O,X,B) = Lose
+	tictactoe(O,B,X,O,B,B,O,X,X) = Lose
+	tictactoe(O,B,X,B,O,X,X,B,O) = Lose
+	tictactoe(O,B,X,B,O,X,B,X,O) = Lose
+	tictactoe(O,B,X,B,O,B,X,X,O) = Lose
+	tictactoe(O,B,O,X,X,O,X,X,O) = Lose
+	tictactoe(O,B,O,X,O,X,X,X,O) = Lose
+	tictactoe(O,B,O,X,O,X,O,X,X) = Lose
+	tictactoe(O,B,O,O,X,X,O,X,X) = Lose
+	tictactoe(O,B,B,X,O,X,X,B,O) = Lose
+	tictactoe(O,B,B,X,O,X,B,X,O) = Lose
+	tictactoe(O,B,B,X,O,B,X,X,O) = Lose
+	tictactoe(O,B,B,O,X,X,O,X,B) = Lose
+	tictactoe(O,B,B,O,X,X,O,B,X) = Lose
+	tictactoe(O,B,B,O,X,B,O,X,X) = Lose
+	tictactoe(O,B,B,O,B,X,O,X,X) = Lose
+	tictactoe(O,B,B,B,O,X,X,X,O) = Lose
+	tictactoe(B,X,X,X,X,O,O,O,O) = Lose
+	tictactoe(B,X,X,X,O,X,O,O,O) = Lose
+	tictactoe(B,X,X,X,B,B,O,O,O) = Lose
+	tictactoe(B,X,X,O,X,X,O,O,O) = Lose
+	tictactoe(B,X,X,O,O,O,X,X,O) = Lose
+	tictactoe(B,X,X,O,O,O,X,O,X) = Lose
+	tictactoe(B,X,X,O,O,O,X,B,B) = Lose
+	tictactoe(B,X,X,O,O,O,O,X,X) = Lose
+	tictactoe(B,X,X,O,O,O,B,X,B) = Lose
+	tictactoe(B,X,X,O,O,O,B,B,X) = Lose
+	tictactoe(B,X,X,B,X,B,O,O,O) = Lose
+	tictactoe(B,X,X,B,B,X,O,O,O) = Lose
+	tictactoe(B,X,O,X,X,O,X,O,O) = Lose
+	tictactoe(B,X,O,X,X,O,B,B,O) = Lose
+	tictactoe(B,X,O,X,O,X,O,X,O) = Lose
+	tictactoe(B,X,O,X,O,X,O,O,X) = Lose
+	tictactoe(B,X,O,X,O,X,O,B,B) = Lose
+	tictactoe(B,X,O,X,O,O,X,X,O) = Lose
+	tictactoe(B,X,O,X,O,O,O,X,X) = Lose
+	tictactoe(B,X,O,X,O,B,O,X,B) = Lose
+	tictactoe(B,X,O,X,O,B,O,B,X) = Lose
+	tictactoe(B,X,O,X,B,O,X,B,O) = Lose
+	tictactoe(B,X,O,X,B,O,B,X,O) = Lose
+	tictactoe(B,X,O,O,O,X,O,X,X) = Lose
+	tictactoe(B,X,O,B,X,O,X,B,O) = Lose
+	tictactoe(B,X,O,B,O,X,O,X,B) = Lose
+	tictactoe(B,X,O,B,O,X,O,B,X) = Lose
+	tictactoe(B,X,O,B,O,B,O,X,X) = Lose
+	tictactoe(B,X,O,B,B,O,X,X,O) = Lose
+	tictactoe(B,X,B,X,X,B,O,O,O) = Lose
+	tictactoe(B,X,B,X,B,X,O,O,O) = Lose
+	tictactoe(B,X,B,O,O,O,X,X,B) = Lose
+	tictactoe(B,X,B,O,O,O,X,B,X) = Lose
+	tictactoe(B,X,B,O,O,O,B,X,X) = Lose
+	tictactoe(B,X,B,B,X,X,O,O,O) = Lose
+	tictactoe(B,O,X,X,O,X,X,O,O) = Lose
+	tictactoe(B,O,X,X,O,X,B,O,B) = Lose
+	tictactoe(B,O,X,X,O,O,X,O,X) = Lose
+	tictactoe(B,O,X,X,O,B,X,O,B) = Lose
+	tictactoe(B,O,X,X,O,B,B,O,X) = Lose
+	tictactoe(B,O,X,B,O,X,X,O,B) = Lose
+	tictactoe(B,O,X,B,O,B,X,O,X) = Lose
+	tictactoe(B,O,O,X,X,O,X,X,O) = Lose
+	tictactoe(B,O,O,X,O,X,X,O,X) = Lose
+	tictactoe(B,O,O,X,O,X,O,X,X) = Lose
+	tictactoe(B,O,B,X,O,X,X,O,B) = Lose
+	tictactoe(B,O,B,X,O,X,B,O,X) = Lose
+	tictactoe(B,O,B,X,O,B,X,O,X) = Lose
+	tictactoe(B,O,B,B,O,X,X,O,X) = Lose
+	tictactoe(B,B,X,X,X,B,O,O,O) = Lose
+	tictactoe(B,B,X,X,B,X,O,O,O) = Lose
+	tictactoe(B,B,X,O,O,O,X,X,B) = Lose
+	tictactoe(B,B,X,O,O,O,X,B,X) = Lose
+	tictactoe(B,B,X,O,O,O,B,X,X) = Lose
+	tictactoe(B,B,X,B,X,X,O,O,O) = Lose
+	tictactoe(B,B,O,X,X,O,X,B,O) = Lose
+	tictactoe(B,B,O,X,X,O,B,X,O) = Lose
+	tictactoe(B,B,O,X,O,X,O,X,B) = Lose
+	tictactoe(B,B,O,X,O,X,O,B,X) = Lose
+	tictactoe(B,B,O,X,O,B,O,X,X) = Lose
+	tictactoe(B,B,O,X,B,O,X,X,O) = Lose
+	tictactoe(B,B,O,B,X,O,X,X,O) = Lose
+	tictactoe(B,B,O,B,O,X,O,X,X) = Lose
+	tictactoe(X,X,O,O,X,X,X,O,O) = Lose
+	tictactoe(X,X,O,O,O,X,X,X,O) = Lose
+	tictactoe(X,X,O,O,O,X,X,O,X) = Lose
+	tictactoe(X,O,X,X,X,O,O,X,O) = Lose
+	tictactoe(X,O,X,X,O,X,O,X,O) = Lose
+	tictactoe(X,O,X,X,O,O,O,X,X) = Lose
+	tictactoe(X,O,X,O,X,X,O,X,O) = Lose
+	tictactoe(X,O,X,O,O,X,X,X,O) = Lose
+	tictactoe(X,O,O,O,X,X,X,X,O) = Lose
+	tictactoe(O,X,X,X,X,O,O,O,X) = Lose
+	tictactoe(O,X,X,X,O,O,X,O,X) = Lose
+	tictactoe(O,X,X,X,O,O,O,X,X) = Lose
+	tictactoe(O,X,O,X,X,O,X,O,X) = Lose
+	tictactoe(O,X,O,X,O,X,X,O,X) = Lose
+	tictactoe(O,X,O,O,X,X,X,O,X) = Lose
+	tictactoe(O,O,X,X,X,O,O,X,X) = Lose
+	|]
+
+
+revdef = [d| rev [] = []
+             rev [x] = [x]
+             rev [x,y] = [y,x]
+             rev [x,y,z] = [z,x,y]
+          |]
+
+initdef = [d| ini [] = []
+              ini [w] = w
+              ini [x,w] = x 
+              ini [y,x,w] = y
+              ini [z,y,x,w] = z
+           |]
+           
+
+                               
+fundefs =    [d| rev [] = []
+                 rev [x] = [x]
+                 rev [x,y] = [y,x]
+                 rev [x,y,z] = [z,x,y]
+                 ini [w] = w
+                 ini [x,w] = x 
+                 ini [y,x,w] = y
+                 ini [z,y,x,w] = z
+              |]
+              
+data Weather = Sunny | Rain | Overcast
+             | Hot | Cool | Mild | Warm | Cold
+             | High |  Normal 
+             | Weak |Strong  
+             | Change | Same
+               
+playTennisDef = [d|          
+    playTennis (Sunny,Hot,High,Weak)         = False
+    playTennis (Sunny,Hot,High,Strong)       = False
+    playTennis (Overcast,Hot,High,Weak)      = True
+    playTennis (Rain,Mild,High,Weak)         = True
+    playTennis (Rain,Cool,Normal,Weak)       = True
+    playTennis (Rain,Cool,Normal,Strong)     = False
+    playTennis (Overcast,Cool,Normal,Strong) = True
+    playTennis (Sunny,Mild,High,Weak)        = False
+    playTennis (Sunny,Cool,Normal,Weak)      = True 
+    playTennis (Rain,Mild,Normal,Weak)       = True
+    playTennis (Sunny,Mild,Normal,Strong)    = True
+    playTennis (Overcast,Mild,High,Strong)   = True
+    playTennis (Overcast,Hot,Normal,Weak)    = True
+    playTennis (Rain,Mild,High,Strong)       = False
+    |]
+    
+enjoySportDef = [d|    
+    enjoySport(Sunny,Warm,Normal,Strong,Warm,Same) = True
+    enjoySport(Sunny,Warm,High,Strong,Warm,Same)   = True
+    enjoySport(Rain,Cold,High,Strong,Warm,Change) = False
+    enjoySport(Sunny,Warm,High,Strong,Cool,Change) = True
+    |]
+
+data LAge = Young | PrePresbyopic | Presbyopic
+data LPrespricption = Myope | Hypermetrope
+data LAstigmatic = No | Yes
+data LTears = Reduced | Norml
+data LCLType = None | Hard | Soft
+
+lensesDef = [d|
+
+	lenses (Young,Myope,No,Reduced) = None
+	lenses (Young,Myope,No,Norml) = Soft
+	lenses (Young,Myope,Yes,Reduced) = None
+	lenses (Young,Myope,Yes,Norml) = Hard
+	lenses (Young,Hypermetrope,No,Reduced) = None
+	lenses (Young,Hypermetrope,No,Norml) = Soft
+	lenses (Young,Hypermetrope,Yes,Reduced) = None
+	lenses (Young,Hypermetrope,Yes,Norml) = Hard
+	lenses (PrePresbyopic,Myope,No,Reduced) = None
+	lenses (PrePresbyopic,Myope,No,Norml) = Soft
+	lenses (PrePresbyopic,Myope,Yes,Reduced) = None
+	lenses (PrePresbyopic,Myope,Yes,Norml) = Hard
+	lenses (PrePresbyopic,Hypermetrope,No,Reduced) = None
+	lenses (PrePresbyopic,Hypermetrope,No,Norml) = Soft
+	lenses (PrePresbyopic,Hypermetrope,Yes,Reduced) = None
+	lenses (PrePresbyopic,Hypermetrope,Yes,Norml) = None
+	lenses (Presbyopic,Myope,No,Reduced) = None
+	lenses (Presbyopic,Myope,No,Norml) = None
+	lenses (Presbyopic,Myope,Yes,Reduced) = None
+	lenses (Presbyopic,Myope,Yes,Norml) = Hard
+	lenses (Presbyopic,Hypermetrope,No,Reduced) = None
+	lenses (Presbyopic,Hypermetrope,No,Norml) = Soft
+	lenses (Presbyopic,Hypermetrope,Yes,Reduced) = None
+	lenses (Presbyopic,Hypermetrope,Yes,Norml) = None	
+	|]
+	
adddir ./src/RuleDevelopment
addfile ./src/RuleDevelopment.hs
hunk ./src/RuleDevelopment.hs 1
-
+
+module RuleDevelopment (
+
+    advanceRule
+    
+    )where
+
+import RuleDevelopment.Partition
+import Data.IOData
+import Data.IgorMonad
+import Logging
+import Debug.Trace
+
+advanceRule :: RuleFrag -> IM [(RuleFrags,[Call])]
+advanceRule rf = do
+    
+    trivpart <- trivialPartition rf
+    allparts <- partition rf
+    return $ allparts
+    
+    
+ -- introduces a function call
+functionCall :: 
+    RuleFrag ->             -- ^the rule to partition 
+                            --  FIXME: need covered target rules here) 
+    IM (RuleFrag,[RuleFrag]) -- ^the modified rule(now closed), and the 
+                            -- synthesised subfunctions
+functionCall r = return (r,[])          -- FIXME
+-- TODO:
+-- * uses abduce :: Rules -> Rules -> IM FunFragment
+-- * find a Funfragment 'frag' in background knowledge which contains a rule f
+--   for each rule in the rules covered by r (covering(r)) which matches its rhs
+-- * create a new rule from 'r' by replacing its rhs by a function call to 'frag'
+-- * for each argument of 'frag' abduce the I/O pairs for a subfunction which
+--   returns the argument value from the input of r
+-- * call Igor recursively to synthesise the subfunction. 
+   
+subfunction :: 
+    RuleFrag ->                 -- ^the rule to partition 
+                            --  FIXME: need covered target rules here) 
+    IM (RuleFrag,[RuleFrag]) -- ^the modified rule (now closed), and the 
+                            -- synthesised subfunctions
+subfunction r = return (r,[])          -- FIXME
+-- TODO:
+-- * uses abduce :: Rules -> Rules -> IM FunFragment
+-- * replace every open variable by a call to a subfunction 
+-- * abduce I/O pairs for every subfunction
+-- * the abduced I/O pairs of each subfunction are added to the background 
+--   knowledge (check if it is feasible to modify the IM at this point or 
+--   better at top-level 
+-- * synthesize every subfunction recursively. 
+--   !!! 
+--       If inserting the synthesized function into a hypothese,
+--       a hypothese should never be strict  
+--   !!!
+ 