[Toss-devel-svn] SF.net SVN: toss:[1368] trunk/Toss
Status: Beta
Brought to you by:
lukaszkaiser
|
From: <luk...@us...> - 2011-03-18 16:57:39
|
Revision: 1368
http://toss.svn.sourceforge.net/toss/?rev=1368&view=rev
Author: lukstafi
Date: 2011-03-18 16:57:31 +0000 (Fri, 18 Mar 2011)
Log Message:
-----------
GameSimpl: stage 3: glueing conjoined relations completed; eliminating redundant equivalence relations.
Modified Paths:
--------------
trunk/Toss/Formula/Aux.ml
trunk/Toss/Formula/Aux.mli
trunk/Toss/GGP/GDL.ml
trunk/Toss/GGP/GDL.mli
trunk/Toss/GGP/GDLTest.ml
trunk/Toss/GGP/GameSimpl.ml
trunk/Toss/GGP/GameSimplTest.ml
trunk/Toss/GGP/tests/breakthrough-raw.toss
trunk/Toss/GGP/tests/breakthrough-simpl.toss
trunk/Toss/GGP/tests/connect5-raw.toss
trunk/Toss/GGP/tests/connect5-simpl.toss
Modified: trunk/Toss/Formula/Aux.ml
===================================================================
--- trunk/Toss/Formula/Aux.ml 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/Formula/Aux.ml 2011-03-18 16:57:31 UTC (rev 1368)
@@ -54,6 +54,7 @@
module BasicOperators = struct
let (-|) f g x = f (g x)
+ let (<|) f x = f x
end
open BasicOperators
@@ -220,6 +221,14 @@
| _::tl -> aux (n+1) tl in
aux 0 l
+let pop_find p l =
+ let rec aux acc = function
+ | hd::tl when p hd -> hd, List.rev_append acc tl
+ | hd::tl (* when not p hd *) -> aux (hd::acc) tl
+ | [] -> raise Not_found in
+ aux [] l
+
+
let maximal cmp l =
let rec aux acc = function
| hd::tl when
Modified: trunk/Toss/Formula/Aux.mli
===================================================================
--- trunk/Toss/Formula/Aux.mli 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/Formula/Aux.mli 2011-03-18 16:57:31 UTC (rev 1368)
@@ -25,6 +25,8 @@
sig
(** Function composition. *)
val ( -| ) : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b
+ (** Function application (to avoid parentheses). *)
+ val ( <| ) : ('a -> 'b) -> 'a -> 'b
end
val int_pow : int -> int -> int
@@ -141,6 +143,9 @@
counting from zero. *)
val find_index : 'a -> 'a list -> int
+(** Find an element satisfying the predicate and separate it from the list. *)
+val pop_find : ('a -> bool) -> 'a list -> 'a * 'a list
+
(** Return the list of maximal elements, under the given less-or-equal
comparison (the input does not need to be sorted). (Currently, of
equal elements only the last one is preserved.) *)
Modified: trunk/Toss/GGP/GDL.ml
===================================================================
--- trunk/Toss/GGP/GDL.ml 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/GDL.ml 2011-03-18 16:57:31 UTC (rev 1368)
@@ -537,10 +537,12 @@
(** Expand static relations that do not have ground facts and have
arity above the threshold. *)
let expand_arity_above = ref 0
+
(** Generate all tuples for equivalences, to faciliate further
transformations of formulas in the game definition (outside of
translation). *)
-let equivalences_all_tuples = ref (* false *) true
+type pair_matrix = Pairs_all | Pairs_triang | Pairs_star
+let equivalences_all_tuples = ref Pairs_triang
open Aux.BasicOperators
@@ -1609,14 +1611,14 @@
(term_str a) (term_str b);
assert false
-(*
+
let triang_matrix elems =
let rec aux acc = function
| [] -> acc
| hd::tl -> aux (List.map (fun e->[|hd; e|]) tl @ acc) tl in
aux [] elems
-*)
+
let term_to_blank masks next_arg =
let mask_cands =
Aux.map_try (fun mask ->
@@ -1769,17 +1771,20 @@
(List.map (fun t -> snd (toss_var masks t)) terms) in
constrained_vars := vars @ !constrained_vars;
let tups =
- if !equivalences_all_tuples
- then
- (* generating more relations to faciliate "contraction" of
- co-occurring relations in GameSimpl, which will also clean
- the redundant atoms *)
- Aux.concat_map (fun v -> Aux.map_some (fun w ->
- if v=w then None else Some [|v; w|]) vars) vars
- else
- (* (4b) are equivalences, so we just build a "star" *)
- match vars with [] -> []
- | v::vs -> List.map (fun w -> [|v; w|]) vs in
+ match !equivalences_all_tuples with
+ | Pairs_all ->
+ Aux.concat_map (fun v -> Aux.map_some (fun w ->
+ if v=w then None else Some [|v; w|]) vars) vars
+ | Pairs_triang ->
+ (* generating more relations to faciliate "contraction" of
+ co-occurring relations in GameSimpl -- since it
+ GameSimpl handles inversion, no need for bidirectional
+ links *)
+ triang_matrix vars
+ | Pairs_star ->
+ (* (4b) are equivalences, so we just build a "star" *)
+ match vars with [] -> []
+ | v::vs -> List.map (fun w -> [|v; w|]) vs in
List.map (fun tup -> Formula.Rel (rname, tup)) tups
) terms
) pos_path_subterms) in
@@ -1800,16 +1805,16 @@
(List.map (fun t -> snd (toss_var masks t)) terms) in
(* these don't get constrained since they'll occur negatively *)
let tups =
- if !equivalences_all_tuples
- then
- Aux.concat_map
- (fun v ->
- if v = ntossvar then []
- else [[|v; ntossvar|]; [|ntossvar; v|]]) tossvars
- else
- Aux.map_some (fun v ->
- if v = ntossvar then None
- else Some [|v; ntossvar|]) tossvars in
+ match !equivalences_all_tuples with
+ | Pairs_all ->
+ Aux.concat_map
+ (fun v ->
+ if v = ntossvar then []
+ else [[|v; ntossvar|]; [|ntossvar; v|]]) tossvars
+ | Pairs_triang | Pairs_star ->
+ Aux.map_some (fun v ->
+ if v = ntossvar then None
+ else Some [|v; ntossvar|]) tossvars in
List.map (fun tup -> Formula.Rel (rname, tup)) tups
| _ -> []
) pos_path_subterms in
@@ -2128,14 +2133,15 @@
(List.map (fun t -> snd (toss_var masks t)) terms) in
constrained_vars := vars @ !constrained_vars;
let tups =
- if !equivalences_all_tuples
- then
- Aux.concat_map (fun v -> Aux.map_some (fun w ->
- if v=w then None else Some [|v; w|]) vars) vars
- else
- match vars with [] -> []
- | v::vs -> Aux.map_some (fun w ->
- if v=w then None else Some [|v; w|]) vs in
+ match !equivalences_all_tuples with
+ | Pairs_all ->
+ Aux.concat_map (fun v -> Aux.map_some (fun w ->
+ if v=w then None else Some [|v; w|]) vars) vars
+ | Pairs_triang ->
+ triang_matrix vars
+ | Pairs_star ->
+ match vars with [] -> []
+ | v::vs -> List.map (fun w -> [|v; w|]) vs in
List.map (fun tup -> Formula.Rel (rname, tup)) tups
) terms
) neg_path_subterms in
@@ -3431,7 +3437,7 @@
} in
(* {{{ log entry *)
(* *
- let file = open_out "./GGP/tests/connect5-raw.toss" in
+ let file = open_out "./GGP/tests/breakthrough-raw.toss" in
output_string file (Arena.state_str result);
close_out file;
* *)
@@ -3451,7 +3457,7 @@
) loc_noop_legal in
(* {{{ log entry *)
(* *
- let file = open_out "./GGP/tests/connect5-simpl.toss" in
+ let file = open_out "./GGP/tests/breakthrough-simpl.toss" in
output_string file (Arena.state_str result);
close_out file;
* *)
Modified: trunk/Toss/GGP/GDL.mli
===================================================================
--- trunk/Toss/GGP/GDL.mli 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/GDL.mli 2011-03-18 16:57:31 UTC (rev 1368)
@@ -6,6 +6,9 @@
val aggregate_drop_negative : bool ref
val aggregate_fixpoint : bool ref
+type pair_matrix = Pairs_all | Pairs_triang | Pairs_star
+val equivalences_all_tuples : pair_matrix ref
+
val manual_translation : bool ref
val manual_game : string ref
val top_exec_path : string ref
Modified: trunk/Toss/GGP/GDLTest.ml
===================================================================
--- trunk/Toss/GGP/GDLTest.ml 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/GDLTest.ml 2011-03-18 16:57:31 UTC (rev 1368)
@@ -146,5 +146,5 @@
let breakthrough = load_rules "./GGP/examples/breakthrough.gdl" in
let connect5 = load_rules "./GGP/examples/connect5.gdl" in
let tictactoe = load_rules "./GGP/examples/tictactoe.gdl" in
- let gdl_def, toss_def = GDL.translate_game (Const "x") connect5 in
+ let gdl_def, toss_def = GDL.translate_game (Const "white") breakthrough in
ignore gdl_def; ignore connect5; ignore breakthrough; ignore tictactoe
Modified: trunk/Toss/GGP/GameSimpl.ml
===================================================================
--- trunk/Toss/GGP/GameSimpl.ml 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/GameSimpl.ml 2011-03-18 16:57:31 UTC (rev 1368)
@@ -7,6 +7,9 @@
rules is specified by transformations described below. Rules can
be refined or new simplification rules added to each stage.
+ Assuming that relations beginning with EQ__ are equivalences,
+ eliminate redundant occurrences.
+
TODO: use [DiscreteRule.special_rel_of rel = Some "opt"]
instead of [DiscreteRule.special_rel_of rel <> None]? (To protect
against GDL using identifiers starting with underscore.)
@@ -48,7 +51,8 @@
(3) Add intersections of non-fluent relations to the structure
when they co-occur in formulas. For binary relations, also add
- intersections of a relation and an inverse of another.
+ intersections of a relation and an inverse of another. Filter out
+ unnecessary equivalence relations.
(3a) Eliminate conjoined static (non-fluents and not defined)
relations in formulas that are applied to the same arguments and
@@ -60,16 +64,23 @@
one, and introduce a new relation for intersection of one with the
inverse of the other.
- (3c) Repeat till no more atoms can be glued in this way.
+ (3c) Filter out relations beginning with "EQ__" by: (3c1)
+ collecting equivalent elements in families of sets indexed by EQ
+ relations; (3c2) keeping an EQ relation, outside of glueing group,
+ only if its arguments are not yet in the same partition wrt. the
+ relation. Do it after glueing not to preclude intersections, take
+ into account the glueing reductions.
- (3d) Since too long names would be unreadable anyway, introduce
+ (3d) Repeat till no more atoms can be glued in this way.
+
+ (3e) Since too long names would be unreadable anyway, introduce
fresh relation names for the glued relations and remember the
correspondence in game data.
- (3e) The eliminated co-occurrences are relevant only for tuples
+ (3f) The eliminated co-occurrences are relevant only for tuples
present in rewrite rules (LHS structures), not for absent ones
(since these are conjoined negations). Replace them in the LHS
- structures as in (3a)-(3b), but only if all of replaced relations
+ structures as in (3a)-(3c), but only if all of replaced relations
occur as non-embedded (i.e. "tau_h") (since embedded relations
will have reuired-to-be-absent occurrences, and these cannot be
handled by conjoining).
@@ -437,7 +448,7 @@
(Tups.inter graph1 inv_graph) in
Structure.add_rels struc grel tuples in
- (* preparing (3a-b-c) *)
+ (* preparing (3a-d) *)
let add_rel rel acc =
match rel with
| Rel (rel,_) -> Aux.Strings.add rel acc
@@ -451,6 +462,8 @@
let signat = ref signat in
let glued = ref [] in (* bindings introduced by [glue] *)
let glued_inv = ref [] in (* bingings introduced by [glue_inv] *)
+ let is_equiv rel =
+ String.length rel >= 4 && String.sub rel 0 4 = "EQ__" in
(* 3a *)
let glue rels =
let args_keys =
@@ -500,9 +513,55 @@
else (rel1, args1)::loop more
| (args, rel)::rels -> (rel, args)::loop rels
| [] -> [] in
- loop rels
- in
- (* the step of 3c *)
+ loop rels in
+ (* 3c *)
+ let glue_equiv rels =
+ (* only partition, process later, add the original grels to
+ filtered rels *)
+ let grels, rels = List.partition (fun (rel,_) ->
+ List.mem_assoc rel !glued || List.mem_assoc rel !glued_inv) rels in
+ let eq_sets = Aux.concat_map (fun (rel, args) ->
+ if List.mem_assoc rel !glued
+ then List.map (fun r->r,args) (List.assoc rel !glued)
+ else if List.mem_assoc rel !glued_inv
+ then
+ let rel1, rel2 = List.assoc rel !glued_inv in
+ [rel1, args; rel2, args]
+ else assert false) grels in
+ (* 3c1 *)
+ let eq_sets =
+ Aux.collect (List.filter (is_equiv -| fst) eq_sets) in
+ let build_sets tups =
+ List.fold_left (fun sets args ->
+ let args = Array.to_list args in
+ (let try set, sets =
+ Aux.pop_find (fun set ->
+ List.exists (fun a->List.mem a set) args) sets in
+ Aux.unique_sorted (args @ set) :: sets
+ with Not_found -> args::sets)
+ ) [] tups in
+ let eq_sets =
+ List.map (fun (rel, tups) -> rel, build_sets tups) eq_sets in
+ (* 3c2 *)
+ let _, rels = List.fold_left (fun (eq_sets, rels as old)
+ (rel, args as atom) ->
+ let sets, eq_sets =
+ try Aux.pop_assoc rel eq_sets
+ with Not_found -> [], eq_sets in
+ let argset = Array.to_list args in
+ (let try set, sets =
+ Aux.pop_find (fun set ->
+ List.exists (fun a->List.mem a set) argset) sets in
+ if List.for_all (fun a->List.mem a set) argset
+ then old
+ else
+ (rel, Aux.unique_sorted (argset @ set) :: sets)::eq_sets,
+ atom::rels
+ with Not_found -> (rel, argset::sets)::eq_sets, atom::rels)
+ ) (eq_sets, []) rels in
+ grels @ rels in
+
+ (* the step of 3d *)
let gluable rel =
not (List.mem rel fluents) &&
not (List.mem_assoc rel game.Arena.defined_rels) in
@@ -515,7 +574,8 @@
| phi -> Aux.Right phi) conjs in
let result =
List.map (fun (rel, args) -> Rel (rel, args))
- (glue_inv (glue poslits)) in
+ (*glue_equiv <| glue_inv <| glue <| poslits why wrong?*)
+ (glue_equiv (glue_inv (glue poslits))) in
And (result @ subtasks));
map_Or = (fun disjs ->
let neglits, subtasks = Aux.partition_map (function
@@ -525,7 +585,7 @@
List.map (fun (rel, args) -> Not (Rel (rel, args)))
(glue_inv (glue neglits)) in
Or (result @ subtasks))} in
- (* 3c *)
+ (* 3d *)
let rec glue_fixpoint phi =
let old_used_rels = !used_rels in
let res = glue_phi (FormulaOps.flatten_formula phi) in
@@ -533,7 +593,7 @@
else glue_fixpoint res in
let game =
Arena.map_to_formulas glue_fixpoint game in
- (* 3d *)
+ (* 3e *)
let more_data =
Aux.map_some (fun (crel, orig_rel) ->
if Aux.Strings.mem crel !used_rels then
@@ -554,7 +614,7 @@
let state = {state with Arena.struc = !struc} in
let signat = !signat in
- (* 3e-3a *)
+ (* 3f-3a *)
(* rather than keeping the unaffected relations/tuples, we only
return the replaced ones *)
let glue_lhs rels =
@@ -569,7 +629,7 @@
Printf.printf "rels=%s\n%!" (String.concat ", " rels);
assert false)
) args_keys in
- (* 3e-3b *)
+ (* 3f-3b *)
let glue_inv_lhs rels =
let rels = List.map (fun (rel,args) -> args,rel) rels in
let rec loop = function
@@ -590,9 +650,53 @@
else loop more
| _::rels -> loop rels
| [] -> [] in
- loop rels
- in
- (* 3e *)
+ loop rels in
+
+ (* 3f-3c *)
+ let glue_equiv_lhs rels =
+ let grels, rels = List.partition (fun (rel,_) ->
+ List.mem_assoc rel !glued || List.mem_assoc rel !glued_inv) rels in
+ let eq_sets = Aux.concat_map (fun (rel, args) ->
+ if List.mem_assoc rel !glued
+ then List.map (fun r->r,args) (List.assoc rel !glued)
+ else if List.mem_assoc rel !glued_inv
+ then
+ let rel1, rel2 = List.assoc rel !glued_inv in
+ [rel1, args; rel2, args]
+ else assert false) grels in
+ (* 3c1 *)
+ let eq_sets =
+ Aux.collect (List.filter (is_equiv -| fst) eq_sets) in
+ let build_sets tups =
+ List.fold_left (fun sets args ->
+ let args = Array.to_list args in
+ (let try set, sets =
+ Aux.pop_find (fun set ->
+ List.exists (fun a->List.mem a set) args) sets in
+ Aux.unique_sorted (args @ set) :: sets
+ with Not_found -> args::sets)
+ ) [] tups in
+ let eq_sets =
+ List.map (fun (rel, tups) -> rel, build_sets tups) eq_sets in
+ (* 3c2 *)
+ let _, drels = List.fold_left (fun (eq_sets, drels)
+ (rel, args as atom) ->
+ let sets, eq_sets =
+ try Aux.pop_assoc rel eq_sets
+ with Not_found -> [], eq_sets in
+ let argset = Array.to_list args in
+ (let try set, sets =
+ Aux.pop_find (fun set ->
+ List.exists (fun a->List.mem a set) argset) sets in
+ if List.for_all (fun a->List.mem a set) argset
+ then (rel, set::sets)::eq_sets, atom::drels
+ else (rel, Aux.unique_sorted (argset @ set) :: sets)
+ :: eq_sets, drels
+ with Not_found -> (rel, argset::sets)::eq_sets, drels)
+ ) (eq_sets, []) rels in
+ drels in
+
+ (* 3f *)
let glue_struc lhs emb_rels =
let cands = Structure.StringMap.fold
(fun rel tups cands ->
@@ -613,13 +717,18 @@
lhs, cands
) (lhs, cands) result in
let result = glue_inv_lhs cands in
- List.fold_left
- (fun lhs (grel, (rel1, rel2), args, inv_args) ->
+ let lhs, cands = List.fold_left
+ (fun (lhs, cands) (grel, (rel1, rel2), args, inv_args) ->
let lhs = Structure.add_rel lhs grel args in
let lhs = Structure.del_rel lhs rel1 args in
let lhs = Structure.del_rel lhs rel2 inv_args in
- lhs
- ) lhs result in
+ let cands = (grel, args)::
+ List.filter (fun (rel,_) -> rel<>rel1 && rel<>rel2) cands in
+ lhs, cands
+ ) (lhs, cands) result in
+ let result = glue_equiv_lhs cands in
+ List.fold_left (fun lhs (drel, args) ->
+ Structure.del_rel lhs drel args) lhs result in
let game = Arena.map_to_discrete
(fun r -> {r with DiscreteRule.lhs_struc =
glue_struc r.DiscreteRule.lhs_struc r.DiscreteRule.emb_rels})
Modified: trunk/Toss/GGP/GameSimplTest.ml
===================================================================
--- trunk/Toss/GGP/GameSimplTest.ml 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/GameSimplTest.ml 2011-03-18 16:57:31 UTC (rev 1368)
@@ -48,7 +48,7 @@
]
-let a =
+let a =
Aux.run_test_if_target "GameSimplTest" tests
let a () =
Modified: trunk/Toss/GGP/tests/breakthrough-raw.toss
===================================================================
--- trunk/Toss/GGP/tests/breakthrough-raw.toss 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/tests/breakthrough-raw.toss 2011-03-18 16:57:31 UTC (rev 1368)
@@ -1,5 +1,4 @@
PLAYERS white, black
-DATA
RULE move_x1_y1_x2_y2_0:
[cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
_opt_cellholds_x2_y2_black {
@@ -92,10 +91,8 @@
cellholds_x2_y2_white(cellholds_x377_y369__blank_)))
RULE move_x_y1_x_y2_0:
[cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
- EQ___cellholds_x2_y2_MV1_x2 {
+ EQ___cellholds_x2_y2_MV1_x2
(cellholds_x_y1__blank_, cellholds_x_y2__blank_);
- (cellholds_x_y2__blank_, cellholds_x_y1__blank_)
- };
_opt_cellholds_x2_y2_black {cellholds_x_y1__blank_; control__blank_};
_opt_cellholds_x2_y2_white (control__blank_);
_opt_control_black {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
@@ -228,10 +225,8 @@
cellholds_x2_y2_white(cellholds_x377_y369__blank_)))
RULE move_x_y1_x_y2_1:
[cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
- EQ___cellholds_x2_y2_MV1_x2 {
+ EQ___cellholds_x2_y2_MV1_x2
(cellholds_x_y1__blank_, cellholds_x_y2__blank_);
- (cellholds_x_y2__blank_, cellholds_x_y1__blank_)
- };
_opt_cellholds_x2_y2_black (control__blank_);
_opt_cellholds_x2_y2_white {cellholds_x_y1__blank_; control__blank_};
_opt_control_black {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
Modified: trunk/Toss/GGP/tests/breakthrough-simpl.toss
===================================================================
--- trunk/Toss/GGP/tests/breakthrough-simpl.toss 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/tests/breakthrough-simpl.toss 2011-03-18 16:57:31 UTC (rev 1368)
@@ -4,7 +4,8 @@
EQ___cellholds_x2_y2_MV1_x2__AND__succ__cellholds_x2_y2_MV1_y2__cellholds_x2_y2_MV1_y2,
R0:
succ__cellholds_x2_y2_MV1_x2__cellholds_x2_y2_MV1_x2__AND__succ__cellholds_x2_y2_MV1_y2__cellholds_x2_y2_MV1_y2,
- R2: EQ___cellholds_x2_y2_MV1_x2__AND_INV__R1,
+ R2:
+ EQ___cellholds_x2_y2_MV1_x2__AND_INV__succ__cellholds_x2_y2_MV1_y2__cellholds_x2_y2_MV1_y2,
R:
succ__cellholds_x2_y2_MV1_x2__cellholds_x2_y2_MV1_x2__AND_INV__succ__cellholds_x2_y2_MV1_y2__cellholds_x2_y2_MV1_y2
RULE move_x1_y1_x2_y2_0:
@@ -79,19 +80,21 @@
ex cellholds_x377_y369__blank_
(cellholds_x2_y2_white(cellholds_x377_y369__blank_) and
not control_MV1(cellholds_x377_y369__blank_)))
-RULE move_x_y1_x_y2_0:
- [cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
- _opt_cellholds_x2_y2_black {cellholds_x_y1__blank_; control__blank_};
- _opt_cellholds_x2_y2_white (control__blank_);
- _opt_control_black {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
- _opt_control_white {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
- cellholds_x2_y2_white (cellholds_x_y1__blank_);
- control_white (control__blank_)
+RULE move_x1_y1_x2_y2_1:
+ [cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
+ R0 (cellholds_x2_y2__blank_, cellholds_x1_y1__blank_);
+ _opt_cellholds_x2_y2_black (control__blank_);
+ _opt_cellholds_x2_y2_white {
+ cellholds_x1_y1__blank_; cellholds_x2_y2__blank_; control__blank_};
+ _opt_control_black {cellholds_x1_y1__blank_; cellholds_x2_y2__blank_};
+ _opt_control_white {cellholds_x1_y1__blank_; cellholds_x2_y2__blank_};
+ cellholds_x2_y2_black (cellholds_x1_y1__blank_);
+ control_black (control__blank_)
|
] ->
- [cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
- cellholds_x2_y2_white (cellholds_x_y2__blank_);
- control_black (control__blank_)
+ [cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
+ cellholds_x2_y2_black (cellholds_x2_y2__blank_);
+ control_white (control__blank_)
|
]
emb cellholds_x2_y2_black, cellholds_x2_y2_white, control_black,
@@ -113,9 +116,9 @@
ex cellholds_x377_y369__blank_
(cellholds_x2_y2_white(cellholds_x377_y369__blank_) and
not control_MV1(cellholds_x377_y369__blank_)))
-RULE move_x1_y1_x2_y2_1:
+RULE move_x1_y1_x2_y2_10:
[cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
- R0 (cellholds_x2_y2__blank_, cellholds_x1_y1__blank_);
+ R (cellholds_x1_y1__blank_, cellholds_x2_y2__blank_);
_opt_cellholds_x2_y2_black (control__blank_);
_opt_cellholds_x2_y2_white {
cellholds_x1_y1__blank_; cellholds_x2_y2__blank_; control__blank_};
@@ -149,21 +152,20 @@
ex cellholds_x377_y369__blank_
(cellholds_x2_y2_white(cellholds_x377_y369__blank_) and
not control_MV1(cellholds_x377_y369__blank_)))
-RULE move_x1_y1_x2_y2_10:
- [cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
- R (cellholds_x1_y1__blank_, cellholds_x2_y2__blank_);
- _opt_cellholds_x2_y2_black (control__blank_);
- _opt_cellholds_x2_y2_white {
- cellholds_x1_y1__blank_; cellholds_x2_y2__blank_; control__blank_};
- _opt_control_black {cellholds_x1_y1__blank_; cellholds_x2_y2__blank_};
- _opt_control_white {cellholds_x1_y1__blank_; cellholds_x2_y2__blank_};
- cellholds_x2_y2_black (cellholds_x1_y1__blank_);
- control_black (control__blank_)
+RULE move_x_y1_x_y2_0:
+ [cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
+ R1 (cellholds_x_y1__blank_, cellholds_x_y2__blank_);
+ _opt_cellholds_x2_y2_black {cellholds_x_y1__blank_; control__blank_};
+ _opt_cellholds_x2_y2_white (control__blank_);
+ _opt_control_black {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
+ _opt_control_white {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
+ cellholds_x2_y2_white (cellholds_x_y1__blank_);
+ control_white (control__blank_)
|
] ->
- [cellholds_x1_y1__blank_, cellholds_x2_y2__blank_, control__blank_ |
- cellholds_x2_y2_black (cellholds_x2_y2__blank_);
- control_white (control__blank_)
+ [cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
+ cellholds_x2_y2_white (cellholds_x_y2__blank_);
+ control_black (control__blank_)
|
]
emb cellholds_x2_y2_black, cellholds_x2_y2_white, control_black,
@@ -187,6 +189,7 @@
not control_MV1(cellholds_x377_y369__blank_)))
RULE move_x_y1_x_y2_1:
[cellholds_x_y1__blank_, cellholds_x_y2__blank_, control__blank_ |
+ R2 (cellholds_x_y1__blank_, cellholds_x_y2__blank_);
_opt_cellholds_x2_y2_black (control__blank_);
_opt_cellholds_x2_y2_white {cellholds_x_y1__blank_; control__blank_};
_opt_control_black {cellholds_x_y1__blank_; cellholds_x_y2__blank_};
@@ -406,7 +409,7 @@
(cellholds_1_2_MV1, cellholds_2_3_MV1);
(cellholds_1_1_MV1, cellholds_2_2_MV1)
};
- R2 {
+ R1 {
(cellholds_8_7_MV1, cellholds_8_8_MV1);
(cellholds_8_6_MV1, cellholds_8_7_MV1);
(cellholds_8_5_MV1, cellholds_8_6_MV1);
@@ -464,6 +467,64 @@
(cellholds_1_2_MV1, cellholds_1_3_MV1);
(cellholds_1_1_MV1, cellholds_1_2_MV1)
};
+ R2 {
+ (cellholds_8_8_MV1, cellholds_8_7_MV1);
+ (cellholds_8_7_MV1, cellholds_8_6_MV1);
+ (cellholds_8_6_MV1, cellholds_8_5_MV1);
+ (cellholds_8_5_MV1, cellholds_8_4_MV1);
+ (cellholds_8_4_MV1, cellholds_8_3_MV1);
+ (cellholds_8_3_MV1, cellholds_8_2_MV1);
+ (cellholds_8_2_MV1, cellholds_8_1_MV1);
+ (cellholds_7_8_MV1, cellholds_7_7_MV1);
+ (cellholds_7_7_MV1, cellholds_7_6_MV1);
+ (cellholds_7_6_MV1, cellholds_7_5_MV1);
+ (cellholds_7_5_MV1, cellholds_7_4_MV1);
+ (cellholds_7_4_MV1, cellholds_7_3_MV1);
+ (cellholds_7_3_MV1, cellholds_7_2_MV1);
+ (cellholds_7_2_MV1, cellholds_7_1_MV1);
+ (cellholds_6_8_MV1, cellholds_6_7_MV1);
+ (cellholds_6_7_MV1, cellholds_6_6_MV1);
+ (cellholds_6_6_MV1, cellholds_6_5_MV1);
+ (cellholds_6_5_MV1, cellholds_6_4_MV1);
+ (cellholds_6_4_MV1, cellholds_6_3_MV1);
+ (cellholds_6_3_MV1, cellholds_6_2_MV1);
+ (cellholds_6_2_MV1, cellholds_6_1_MV1);
+ (cellholds_5_8_MV1, cellholds_5_7_MV1);
+ (cellholds_5_7_MV1, cellholds_5_6_MV1);
+ (cellholds_5_6_MV1, cellholds_5_5_MV1);
+ (cellholds_5_5_MV1, cellholds_5_4_MV1);
+ (cellholds_5_4_MV1, cellholds_5_3_MV1);
+ (cellholds_5_3_MV1, cellholds_5_2_MV1);
+ (cellholds_5_2_MV1, cellholds_5_1_MV1);
+ (cellholds_4_8_MV1, cellholds_4_7_MV1);
+ (cellholds_4_7_MV1, cellholds_4_6_MV1);
+ (cellholds_4_6_MV1, cellholds_4_5_MV1);
+ (cellholds_4_5_MV1, cellholds_4_4_MV1);
+ (cellholds_4_4_MV1, cellholds_4_3_MV1);
+ (cellholds_4_3_MV1, cellholds_4_2_MV1);
+ (cellholds_4_2_MV1, cellholds_4_1_MV1);
+ (cellholds_3_8_MV1, cellholds_3_7_MV1);
+ (cellholds_3_7_MV1, cellholds_3_6_MV1);
+ (cellholds_3_6_MV1, cellholds_3_5_MV1);
+ (cellholds_3_5_MV1, cellholds_3_4_MV1);
+ (cellholds_3_4_MV1, cellholds_3_3_MV1);
+ (cellholds_3_3_MV1, cellholds_3_2_MV1);
+ (cellholds_3_2_MV1, cellholds_3_1_MV1);
+ (cellholds_2_8_MV1, cellholds_2_7_MV1);
+ (cellholds_2_7_MV1, cellholds_2_6_MV1);
+ (cellholds_2_6_MV1, cellholds_2_5_MV1);
+ (cellholds_2_5_MV1, cellholds_2_4_MV1);
+ (cellholds_2_4_MV1, cellholds_2_3_MV1);
+ (cellholds_2_3_MV1, cellholds_2_2_MV1);
+ (cellholds_2_2_MV1, cellholds_2_1_MV1);
+ (cellholds_1_8_MV1, cellholds_1_7_MV1);
+ (cellholds_1_7_MV1, cellholds_1_6_MV1);
+ (cellholds_1_6_MV1, cellholds_1_5_MV1);
+ (cellholds_1_5_MV1, cellholds_1_4_MV1);
+ (cellholds_1_4_MV1, cellholds_1_3_MV1);
+ (cellholds_1_3_MV1, cellholds_1_2_MV1);
+ (cellholds_1_2_MV1, cellholds_1_1_MV1)
+ };
cellholds_x2_1_MV1 {
cellholds_8_1_MV1; cellholds_7_1_MV1; cellholds_6_1_MV1;
cellholds_5_1_MV1; cellholds_4_1_MV1; cellholds_3_1_MV1;
Modified: trunk/Toss/GGP/tests/connect5-raw.toss
===================================================================
--- trunk/Toss/GGP/tests/connect5-raw.toss 2011-03-18 00:19:55 UTC (rev 1367)
+++ trunk/Toss/GGP/tests/connect5-raw.toss 2011-03-18 16:57:31 UTC (rev 1368)
@@ -1,5 +1,4 @@
PLAYERS x, o
-DATA
RULE mark_x149_y149_0:
[cell_x149_y149__blank_, control__blank_ |
_opt_cell_x_y_b (control__blank_);
@@ -23,22 +22,12 @@
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_a23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_b23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_b23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_b23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_c31__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_d23__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x160_d23__blank_,
cell_x160_e23__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x160_c31__blank_,
@@ -58,22 +47,12 @@
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_a24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_b24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_b24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_b24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_c32_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_d24_y160__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_d24_y160__blank_,
cell_e24_y160__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_c32_y160__blank_,
@@ -139,22 +118,12 @@
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_a25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_b25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_b25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_b25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_c33__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_d25__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x171_d25__blank_,
cell_x171_e25__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x171_c33__blank_,
@@ -174,22 +143,12 @@
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_a26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_b26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_b26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_b26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_c34_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_d26_y171__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_d26_y171__blank_,
cell_e26_y171__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_c34_y171__blank_,
@@ -272,22 +231,12 @@
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_a23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_a23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_b23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_b23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_d23__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_c31__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_b23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_c31__blank_) and
EQ___cell_x_y_MV1_x(cell_x160_d23__blank_, cell_x160_e23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_a23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_b23__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_c31__blank_) and
- EQ___cell_x_y_MV1_x(cell_x160_e23__blank_, cell_x160_d23__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x160_d23__blank_,
cell_x160_e23__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x160_c31__blank_,
@@ -307,22 +256,12 @@
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_a24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_a24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_b24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_b24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_d24_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_c32_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_b24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_c32_y160__blank_) and
EQ___cell_x_y_MV1_y(cell_d24_y160__blank_, cell_e24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_a24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_b24_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_c32_y160__blank_) and
- EQ___cell_x_y_MV1_y(cell_e24_y160__blank_, cell_d24_y160__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_d24_y160__blank_,
cell_e24_y160__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_c32_y160__blank_,
@@ -388,22 +327,12 @@
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_a25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_a25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_b25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_b25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_d25__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_c33__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_b25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_c33__blank_) and
EQ___cell_x_y_MV1_x(cell_x171_d25__blank_, cell_x171_e25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_a25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_b25__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_c33__blank_) and
- EQ___cell_x_y_MV1_x(cell_x171_e25__blank_, cell_x171_d25__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x171_d25__blank_,
cell_x171_e25__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x171_c33__blank_,
@@ -423,22 +352,12 @@
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_a26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_a26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_b26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_b26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_d26_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_c34_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_b26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_c34_y171__blank_) and
EQ___cell_x_y_MV1_y(cell_d26_y171__blank_, cell_e26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_a26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_b26_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_c34_y171__blank_) and
- EQ___cell_x_y_MV1_y(cell_e26_y171__blank_, cell_d26_y171__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_d26_y171__blank_,
cell_e26_y171__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_c34_y171__blank_,
@@ -511,22 +430,12 @@
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_a7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_b7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_b7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_b7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_c7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_d7__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x51_a7__blank_,
cell_x51_b7__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x51_b7__blank_,
@@ -544,22 +453,12 @@
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_a8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_b8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_b8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_b8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_c8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_d8_y51__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_a8_y51__blank_,
cell_b8_y51__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_b8_y51__blank_,
@@ -626,22 +525,12 @@
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_a5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_b5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_b5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_b5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_c5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_d5__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x40_a5__blank_,
cell_x40_b5__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x40_b5__blank_,
@@ -659,22 +548,12 @@
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_a6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_b6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_b6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_b6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_c6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_d6_y40__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_a6_y40__blank_,
cell_b6_y40__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_b6_y40__blank_,
@@ -742,22 +621,12 @@
EQ___cell_x_y_MV1_x(cell_x62_a9__blank_, cell_x62_c9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_a9__blank_, cell_x62_d9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_a9__blank_, cell_x62_e9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_b9__blank_, cell_x62_a9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_b9__blank_, cell_x62_c9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_b9__blank_, cell_x62_d9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_b9__blank_, cell_x62_e9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_c9__blank_, cell_x62_a9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_c9__blank_, cell_x62_b9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_c9__blank_, cell_x62_d9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_c9__blank_, cell_x62_e9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_d9__blank_, cell_x62_a9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_d9__blank_, cell_x62_b9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_d9__blank_, cell_x62_c9__blank_) and
EQ___cell_x_y_MV1_x(cell_x62_d9__blank_, cell_x62_e9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_e9__blank_, cell_x62_a9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_e9__blank_, cell_x62_b9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_e9__blank_, cell_x62_c9__blank_) and
- EQ___cell_x_y_MV1_x(cell_x62_e9__blank_, cell_x62_d9__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x62_a9__blank_,
cell_x62_b9__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x62_b9__blank_,
@@ -781,37 +650,17 @@
EQ___cell_x_y_MV1_y(cell_a10_y62__blank_,
cell_e10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_b10_y62__blank_,
- cell_a10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_b10_y62__blank_,
cell_c10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_b10_y62__blank_,
cell_d10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_b10_y62__blank_,
cell_e10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_c10_y62__blank_,
- cell_a10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_c10_y62__blank_,
- cell_b10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_c10_y62__blank_,
cell_d10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_c10_y62__blank_,
cell_e10_y62__blank_) and
EQ___cell_x_y_MV1_y(cell_d10_y62__blank_,
- cell_a10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_d10_y62__blank_,
- cell_b10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_d10_y62__blank_,
- cell_c10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_d10_y62__blank_,
cell_e10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_e10_y62__blank_,
- cell_a10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_e10_y62__blank_,
- cell_b10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_e10_y62__blank_,
- cell_c10_y62__blank_) and
- EQ___cell_x_y_MV1_y(cell_e10_y62__blank_,
- cell_d10_y62__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_a10_y62__blank_,
cell_b10_y62__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_b10_y62__blank_,
@@ -878,22 +727,12 @@
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_a5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_b5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_b5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_b5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_c5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_e5__blank_, cell_x40_d5__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x40_a5__blank_,
cell_x40_b5__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x40_b5__blank_,
@@ -912,22 +751,12 @@
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_a6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_a6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_b6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_b6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_d6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_c6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_b6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_c6_y40__blank_) and
EQ___cell_x_y_MV1_y(cell_d6_y40__blank_, cell_e6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_a6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_b6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_c6_y40__blank_) and
- EQ___cell_x_y_MV1_y(cell_e6_y40__blank_, cell_d6_y40__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_a6_y40__blank_,
cell_b6_y40__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_b6_y40__blank_,
@@ -1001,22 +830,12 @@
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_a7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_a7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_b7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_b7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_d7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_c7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_b7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_c7__blank_) and
EQ___cell_x_y_MV1_x(cell_x51_d7__blank_, cell_x51_e7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_a7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_b7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_c7__blank_) and
- EQ___cell_x_y_MV1_x(cell_x51_e7__blank_, cell_x51_d7__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x51_a7__blank_,
cell_x51_b7__blank_) and
nextcol__cell_x_y_MV1_y__cell_x_y_MV1_y(cell_x51_b7__blank_,
@@ -1034,22 +853,12 @@
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_a8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_a8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_b8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_b8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_d8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_c8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_b8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_c8_y51__blank_) and
EQ___cell_x_y_MV1_y(cell_d8_y51__blank_, cell_e8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_a8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_b8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_c8_y51__blank_) and
- EQ___cell_x_y_MV1_y(cell_e8_y51__blank_, cell_d8_y51__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_a8_y51__blank_,
cell_b8_y51__blank_) and
nextcol__cell_x_y_MV1_x__cell_x_y_MV1_x(cell_b8_y51__blank_,
@@ -1116,22 +925,12 @@
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_a5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_a5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_c5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_b5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_b5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_d5__blank_) and
EQ___cell_x_y_MV1_x(cell_x40_c5__blank_, cell_x40_e5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_x40_a5__blank_) and
- EQ___cell_x_y_MV1_x(cell_x40_d5__blank_, cell_...
[truncated message content] |