action(cpa_certify(cpa_p0)).
action(cpa_certify(cpa_p1)).
action(cpa_certify(cpa_p2)).
action(cpa_reset(cpa_s1)).
action(cpa_reset(cpa_s2)).
action(cpa_reset(cpa_s3)).
action(cpa_reset(cpa_s4)).
action(cpa_reset(cpa_s5)).
action(cpa_advance(cpa_s0,cpa_s1)).
action(cpa_advance(cpa_s1,cpa_s2)).
action(cpa_advance(cpa_s2,cpa_s3)).
action(cpa_advance(cpa_s3,cpa_s4)).
action(cpa_advance(cpa_s4,cpa_s5)).
action(cpa_obtain(cpa_p0,cpa_s0)).
action(cpa_obtain(cpa_p1,cpa_s1)).
action(cpa_obtain(cpa_p2,cpa_s2)).
action(cpa_request_copy(cpa_p0,cpa_s0)).
action(cpa_request_copy(cpa_p0,cpa_s1)).
action(cpa_request_copy(cpa_p0,cpa_s2)).
action(cpa_request_copy(cpa_p0,cpa_s3)).
action(cpa_request_copy(cpa_p0,cpa_s4)).
action(cpa_request_copy(cpa_p0,cpa_s5)).
action(cpa_request_copy(cpa_p1,cpa_s0)).
action(cpa_request_copy(cpa_p1,cpa_s1)).
action(cpa_request_copy(cpa_p1,cpa_s2)).
action(cpa_request_copy(cpa_p1,cpa_s3)).
action(cpa_request_copy(cpa_p1,cpa_s4)).
action(cpa_request_copy(cpa_p1,cpa_s5)).
action(cpa_request_copy(cpa_p2,cpa_s0)).
action(cpa_request_copy(cpa_p2,cpa_s1)).
action(cpa_request_copy(cpa_p2,cpa_s2)).
action(cpa_request_copy(cpa_p2,cpa_s3)).
action(cpa_request_copy(cpa_p2,cpa_s4)).
action(cpa_request_copy(cpa_p2,cpa_s5)).
fluent(cpa_current_stage(cpa_s5)).
fluent(cpa_bad(cpa_p2)).
fluent(cpa_ok(cpa_p2)).
fluent(cpa_current_stage(cpa_s4)).
fluent(cpa_bad(cpa_p1)).
fluent(cpa_ok(cpa_p1)).
fluent(cpa_current_stage(cpa_s3)).
fluent(cpa_read(cpa_p2)).
fluent(cpa_bad(cpa_p0)).
fluent(cpa_ok(cpa_p0)).
fluent(cpa_current_stage(cpa_s2)).
fluent(cpa_read(cpa_p1)).
fluent(cpa_current_stage(cpa_s1)).
fluent(cpa_read(cpa_p0)).
fluent(cpa_current_stage(cpa_s0)).
fluent(cpa_in_channel(cpa_p0)).
fluent(cpa_in_channel(cpa_p1)).
fluent(cpa_in_channel(cpa_p2)).
fluent(cpa_noisy(cpa_p0)).
fluent(cpa_noisy(cpa_p1)).
fluent(cpa_noisy(cpa_p2)).
executable(cpa_certify(cpa_p0),lit(cpa_read(cpa_p0),1)).
executable(cpa_certify(cpa_p1),lit(cpa_read(cpa_p1),1)).
executable(cpa_certify(cpa_p2),lit(cpa_read(cpa_p2),1)).
executable(cpa_reset(cpa_s1),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_reset(cpa_s2),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_reset(cpa_s3),lit(cpa_current_stage(cpa_s3),1)).
executable(cpa_reset(cpa_s4),lit(cpa_current_stage(cpa_s4),1)).
executable(cpa_reset(cpa_s5),lit(cpa_current_stage(cpa_s5),1)).
executable(cpa_advance(cpa_s0,cpa_s1),lit(cpa_current_stage(cpa_s0),1)).
executable(cpa_advance(cpa_s1,cpa_s2),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_advance(cpa_s2,cpa_s3),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_advance(cpa_s3,cpa_s4),lit(cpa_current_stage(cpa_s3),1)).
executable(cpa_advance(cpa_s4,cpa_s5),lit(cpa_current_stage(cpa_s4),1)).
executable(cpa_obtain(cpa_p0,cpa_s0),lit(cpa_current_stage(cpa_s0),1)).
executable(cpa_obtain(cpa_p1,cpa_s1),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_obtain(cpa_p2,cpa_s2),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_current_stage(cpa_s0),1)).
executable(cpa_request_copy(cpa_p0,cpa_s1),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_request_copy(cpa_p0,cpa_s2),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_request_copy(cpa_p0,cpa_s3),lit(cpa_current_stage(cpa_s3),1)).
executable(cpa_request_copy(cpa_p0,cpa_s4),lit(cpa_current_stage(cpa_s4),1)).
executable(cpa_request_copy(cpa_p0,cpa_s5),lit(cpa_current_stage(cpa_s5),1)).
executable(cpa_request_copy(cpa_p1,cpa_s0),lit(cpa_current_stage(cpa_s0),1)).
executable(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_request_copy(cpa_p1,cpa_s2),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_request_copy(cpa_p1,cpa_s3),lit(cpa_current_stage(cpa_s3),1)).
executable(cpa_request_copy(cpa_p1,cpa_s4),lit(cpa_current_stage(cpa_s4),1)).
executable(cpa_request_copy(cpa_p1,cpa_s5),lit(cpa_current_stage(cpa_s5),1)).
executable(cpa_request_copy(cpa_p2,cpa_s0),lit(cpa_current_stage(cpa_s0),1)).
executable(cpa_request_copy(cpa_p2,cpa_s1),lit(cpa_current_stage(cpa_s1),1)).
executable(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_current_stage(cpa_s2),1)).
executable(cpa_request_copy(cpa_p2,cpa_s3),lit(cpa_current_stage(cpa_s3),1)).
executable(cpa_request_copy(cpa_p2,cpa_s4),lit(cpa_current_stage(cpa_s4),1)).
executable(cpa_request_copy(cpa_p2,cpa_s5),lit(cpa_current_stage(cpa_s5),1)).
effect(cpa_certify(cpa_p0),lit(cpa_bad(cpa_p0),1),1).
effect(cpa_certify(cpa_p0),lit(cpa_ok(cpa_p0),1),2).
effect(cpa_certify(cpa_p1),lit(cpa_bad(cpa_p1),1),1).
effect(cpa_certify(cpa_p1),lit(cpa_ok(cpa_p1),1),2).
effect(cpa_certify(cpa_p2),lit(cpa_bad(cpa_p2),1),1).
effect(cpa_certify(cpa_p2),lit(cpa_ok(cpa_p2),1),2).
effect(cpa_reset(cpa_s1),lit(cpa_current_stage(cpa_s1),-1),1).
effect(cpa_reset(cpa_s1),lit(cpa_current_stage(cpa_s0),1),1).
effect(cpa_reset(cpa_s2),lit(cpa_current_stage(cpa_s2),-1),1).
effect(cpa_reset(cpa_s2),lit(cpa_current_stage(cpa_s0),1),1).
effect(cpa_reset(cpa_s3),lit(cpa_current_stage(cpa_s3),-1),1).
effect(cpa_reset(cpa_s3),lit(cpa_current_stage(cpa_s0),1),1).
effect(cpa_reset(cpa_s4),lit(cpa_current_stage(cpa_s4),-1),1).
effect(cpa_reset(cpa_s4),lit(cpa_current_stage(cpa_s0),1),1).
effect(cpa_reset(cpa_s5),lit(cpa_current_stage(cpa_s5),-1),1).
effect(cpa_reset(cpa_s5),lit(cpa_current_stage(cpa_s0),1),1).
effect(cpa_advance(cpa_s0,cpa_s1),lit(cpa_current_stage(cpa_s1),1),1).
effect(cpa_advance(cpa_s0,cpa_s1),lit(cpa_current_stage(cpa_s0),-1),1).
effect(cpa_advance(cpa_s1,cpa_s2),lit(cpa_current_stage(cpa_s2),1),1).
effect(cpa_advance(cpa_s1,cpa_s2),lit(cpa_current_stage(cpa_s1),-1),1).
effect(cpa_advance(cpa_s2,cpa_s3),lit(cpa_current_stage(cpa_s3),1),1).
effect(cpa_advance(cpa_s2,cpa_s3),lit(cpa_current_stage(cpa_s2),-1),1).
effect(cpa_advance(cpa_s3,cpa_s4),lit(cpa_current_stage(cpa_s4),1),1).
effect(cpa_advance(cpa_s3,cpa_s4),lit(cpa_current_stage(cpa_s3),-1),1).
effect(cpa_advance(cpa_s4,cpa_s5),lit(cpa_current_stage(cpa_s5),1),1).
effect(cpa_advance(cpa_s4,cpa_s5),lit(cpa_current_stage(cpa_s4),-1),1).
effect(cpa_obtain(cpa_p0,cpa_s0),lit(cpa_in_channel(cpa_p0),-1),1).
effect(cpa_obtain(cpa_p0,cpa_s0),lit(cpa_read(cpa_p0),1),1).
effect(cpa_obtain(cpa_p1,cpa_s1),lit(cpa_in_channel(cpa_p1),-1),1).
effect(cpa_obtain(cpa_p1,cpa_s1),lit(cpa_read(cpa_p1),1),1).
effect(cpa_obtain(cpa_p2,cpa_s2),lit(cpa_in_channel(cpa_p2),-1),1).
effect(cpa_obtain(cpa_p2,cpa_s2),lit(cpa_read(cpa_p2),1),1).
effect(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_in_channel(cpa_p0),1),1).
effect(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_read(cpa_p0),-1),1).
effect(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_noisy(cpa_p0),-1),1).
effect(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_bad(cpa_p0),-1),1).
effect(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_in_channel(cpa_p1),1),1).
effect(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_read(cpa_p1),-1),1).
effect(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_noisy(cpa_p1),-1),1).
effect(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_bad(cpa_p1),-1),1).
effect(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_in_channel(cpa_p2),1),1).
effect(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_read(cpa_p2),-1),1).
effect(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_noisy(cpa_p2),-1),1).
effect(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_bad(cpa_p2),-1),1).
condition(cpa_certify(cpa_p0),lit(cpa_noisy(cpa_p0),1),1).
condition(cpa_certify(cpa_p0),lit(cpa_noisy(cpa_p0),-1),2).
condition(cpa_certify(cpa_p1),lit(cpa_noisy(cpa_p1),1),1).
condition(cpa_certify(cpa_p1),lit(cpa_noisy(cpa_p1),-1),2).
condition(cpa_certify(cpa_p2),lit(cpa_noisy(cpa_p2),1),1).
condition(cpa_certify(cpa_p2),lit(cpa_noisy(cpa_p2),-1),2).
condition(cpa_obtain(cpa_p0,cpa_s0),lit(cpa_in_channel(cpa_p0),1),1).
condition(cpa_obtain(cpa_p1,cpa_s1),lit(cpa_in_channel(cpa_p1),1),1).
condition(cpa_obtain(cpa_p2,cpa_s2),lit(cpa_in_channel(cpa_p2),1),1).
condition(cpa_request_copy(cpa_p0,cpa_s0),lit(cpa_bad(cpa_p0),1),1).
condition(cpa_request_copy(cpa_p1,cpa_s1),lit(cpa_bad(cpa_p1),1),1).
condition(cpa_request_copy(cpa_p2,cpa_s2),lit(cpa_bad(cpa_p2),1),1).
initially(lit(cpa_current_stage(cpa_s0),1)).
initially(lit(cpa_in_channel(cpa_p0),1)).
initially(lit(cpa_in_channel(cpa_p1),1)).
initially(lit(cpa_in_channel(cpa_p2),1)).
initially(lit(cpa_current_stage(cpa_s5),-1)).
initially(lit(cpa_bad(cpa_p2),-1)).
initially(lit(cpa_ok(cpa_p2),-1)).
initially(lit(cpa_current_stage(cpa_s4),-1)).
initially(lit(cpa_bad(cpa_p1),-1)).
initially(lit(cpa_ok(cpa_p1),-1)).
initially(lit(cpa_current_stage(cpa_s3),-1)).
initially(lit(cpa_read(cpa_p2),-1)).
initially(lit(cpa_bad(cpa_p0),-1)).
initially(lit(cpa_ok(cpa_p0),-1)).
initially(lit(cpa_current_stage(cpa_s2),-1)).
initially(lit(cpa_read(cpa_p1),-1)).
initially(lit(cpa_current_stage(cpa_s1),-1)).
initially(lit(cpa_read(cpa_p0),-1)).
initially_oneof(1,lit(cpa_noisy(cpa_p0),1),1).
initially_oneof(1,lit(cpa_noisy(cpa_p2),1),1).
initially_oneof(1,lit(cpa_noisy(cpa_p1),1),1).
initially_oneof(1,lit(cpa_noisy(cpa_p0),-1),2).
initially_oneof(1,lit(cpa_noisy(cpa_p2),-1),2).
initially_oneof(1,lit(cpa_noisy(cpa_p1),-1),2).
goal(lit(cpa_ok(cpa_p0),1)).
goal(lit(cpa_ok(cpa_p1),1)).
goal(lit(cpa_ok(cpa_p2),1)).
holds_initially(cpa_current_stage(cpa_s0)).
holds_initially(cpa_in_channel(cpa_p0)).
holds_initially(cpa_in_channel(cpa_p1)).
holds_initially(cpa_in_channel(cpa_p2)).
holds_initially(cpa_noisy(cpa_p0)).
holds_initially(cpa_noisy(cpa_p2)).
holds_initially(cpa_noisy(cpa_p1)).
