# coding=utf-8 id = 173 group = 'denotational_semantics' number = 82 visible = True facts = 'denotational_semantics_aux__predicates' solution = '''\ prog_8puzzle(R0 --> R) --> [begin], { findblank(R0,C0) }, instructs173(((R0,C0) --> (R,_C))), [end]. instructs173((R0,C0) --> (R,C)) --> instr173((R0,C0) --> (R,C)). instructs173((R0,C0) --> (R,C)) --> instr173((R0,C0) --> (R1,C1)), instructs173((R1,C1) --> (R,C)). instr173((R0,C0) --> (R,C)) --> [left], {Pos is (C0-1) mod 3, (Pos>0, C is C0-1, swap(R0,C0,C,R) ; Pos=0, C=C0, R=R0)}. instr173((R0,C0) --> (R,C)) --> [right], {Pos is (C0-1) mod 3, (Pos<2, C is C0+1, swap(R0,C0,C,R) ; Pos=2, C=C0, R=R0)}. instr173((R0,C0) --> (R,C)) --> [up], { (C0>3, C is C0-3, swap(R0,C0,C,R) ; C0=<3, C=C0, R=R0)}. instr173((R0,C0) --> (R,C)) --> [down], { (C0=<6, C is C0+3, swap(R0,C0,C,R) ; C0>6, C=C0, R=R0)}. '''