Skip to content

MM2 Example: Transition System

AnnelineD edited this page Jan 28, 2026 · 3 revisions

In this example, we build a labelled transition system for the BlocksWorld planning domain.

We started from a PDDL description of the domain, which defines predicates and actions, and how each action changes the state of the world. We translated this PDDL description into MM2 (manually, here, although this step could be automated) and used the resulting MM2 program to construct the transition system for BlocksWorld with two blocks.

; -- translation of the PDDL BlocksWorld domain into MM2 --

(pre (pick-up $x) $s (, (state $s (clear $x)) (state $s (ontable $x)) (state $s (handempty))))
(pos-eff (pick-up $x) (holding $x))
(neg-eff (pick-up $x) (ontable $x))
(neg-eff (pick-up $x) (clear $x))
(neg-eff (pick-up $x) (handempty))

(pre (put-down $x) $s (, (state $s (holding $x))))
(pos-eff (put-down $x) (clear $x))
(pos-eff (put-down $x) (handempty)) 
(pos-eff (put-down $x) (ontable $x))
(neg-eff (put-down $x) (holding $x))

(pre (stack $x $y) $s (, (state $s (holding $x)) (state $s (clear $y))))
(pos-eff (stack $x $y) (clear $x))
(pos-eff (stack $x $y) (handempty))
(pos-eff (stack $x $y) ($x on $y))
(neg-eff (stack $x $y) (holding $x))
(neg-eff (stack $x $y) (clear $y))

(pre (unstack $x $y) $s (, (state $s ($x on $y)) (state $s (clear $x)) (state $s (handempty))))
(pos-eff (unstack $x $y) (holding $x))
(pos-eff (unstack $x $y) (clear $y))
(neg-eff (unstack $x $y) (clear $x))
(neg-eff (unstack $x $y) (handempty))
(neg-eff (unstack $x $y) ($x on $y))

; -- define the initial state to start building the transition system --

(state init (handempty))
(state init (clear A))
(state init (clear B))
(state init (ontable A))
(state init (ontable B))


; -- hash the initial state and mark it as a new state --
; We hash each state so that if we reach a previously visited state by applying an action,
; the transition points to the existing state.
; Building a transition system is an iterative process. 
; We mark states as "new", so we can detect when the construction has stabilized, and no additional states are being added.
(exec 0 (, (state init $prop)) (O (hash (hash init $h) $h $prop)))
(exec 1 (, (hash init $h) (state init $prop)) (, (state $h $prop) (new $h)))


; -- the iterative process --
; Each iteration consists of the following steps: 

; step 0
; our state space contains: (state $s $prop1) (state $s $prop2)
; and match precondition (pre $a $s0 (, (state $s0 $prop1) (state $s0 $prop2)))
; step 1
; (action $a applies to $s)
; define a new (temporary) state (temp ($s act $a) $prop)  with the same properties
; step 2
; add all positive effects, and remove all negative effects
; step 3
; calculate the hash of our new states' properties (hash ($s act $a) $h)
; step 4
; add an edge from the old state to the new labeled by the action
; step 5
; mark the new hashes as new states
; step 6
; remove the "new" marker if the state already existed 
; step 7
; create the canonical state identified by the hash, using the properties of the temporary state
; step 8
; clean up temporary facts
; step 9
; add the next iteration

(exec 9 (, (pre $a $s $q) (exec 9 $ps $ts) (new $s))
        (, 
           (exec 0 $q (, (action $a applies to $s)))
           (exec 1 (, (action $a applies to $s) (state $s $prop)) (, (temp ($s act $a) $prop)))
           (exec 2 (, (temp ($s act $a) $_) (pos-eff $a $pe)) (, (temp ($s act $a) $pe)))
           (exec 2 (, (temp ($s act $a) $_) (neg-eff $a $ne)) (O (- (temp ($s act $a) $ne))))
           (exec 3 (, (temp ($s act $a) $prop)) (O (hash (hash ($s act $a) $h) $h $prop)))
           (exec 4 (, (hash ($s act $a) $h)) (, (t $s $a $h)))
           (exec 5 (, (hash ($s act $a) $h)) (, (new $h)))
           (exec 6 (, (state $t $_)) (O (- (new $t))))
           (exec 7 (, (hash ($s act $a) $h) (temp ($s act $a) $prop)) (, (state $h $prop)))
           (exec 8 (, (temp ($s act $a) $prop)) (O (- (temp ($s act $a) $prop))))
           (exec 8 (, (hash ($s act $a) $h)) (O (- (hash ($s act $a) $h))))
           (exec 8 (, (action $a applies to $s)) (O (- (action $a applies to $s))))
           (exec 9 $ps $ts)
    ))

Full program output for two blocks
(hash init [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124])
(state init (handempty))
(state init (clear A))
(state init (clear B))
(state init (ontable A))
(state init (ontable B))
(state [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153] (clear B))
(state [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153] (holding A))
(state [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153] (ontable B))
(state [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (handempty))
(state [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (clear A))
(state [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (clear B))
(state [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (ontable A))
(state [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (ontable B))
(state [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254] (handempty))
(state [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254] (clear B))
(state [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254] (ontable A))
(state [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254] (B on A))
(state [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5] (handempty))
(state [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5] (clear A))
(state [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5] (ontable B))
(state [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5] (A on B))
(state [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107] (clear A))
(state [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107] (holding B))
(state [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107] (ontable A))
(neg-eff (pick-up $a) (handempty))
(neg-eff (pick-up $a) (clear $a))
(neg-eff (pick-up $a) (ontable $a))
(neg-eff (put-down $a) (holding $a))
(neg-eff (stack $a $b) (clear $b))
(neg-eff (stack $a $b) (holding $a))
(neg-eff (unstack $a $b) (handempty))
(neg-eff (unstack $a $b) (clear $a))
(neg-eff (unstack $a $b) ($a on $b))
(pos-eff (pick-up $a) (holding $a))
(pos-eff (put-down $a) (handempty))
(pos-eff (put-down $a) (clear $a))
(pos-eff (put-down $a) (ontable $a))
(pos-eff (stack $a $b) (handempty))
(pos-eff (stack $a $b) (clear $a))
(pos-eff (stack $a $b) ($a on $b))
(pos-eff (unstack $a $b) (clear $b))
(pos-eff (unstack $a $b) (holding $a))
(t [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153] (put-down A) [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124])
(t [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153] (stack A B) [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5])
(t [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (pick-up A) [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153])
(t [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124] (pick-up B) [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107])
(t [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254] (unstack B A) [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107])
(t [212, 49, 165, 164, 30, 10, 62, 47, 219, 205, 152, 36, 61, 253, 255, 5] (unstack A B) [103, 97, 197, 57, 64, 95, 51, 103, 169, 185, 255, 219, 39, 69, 96, 153])
(t [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107] (put-down B) [112, 108, 96, 188, 23, 158, 3, 133, 181, 73, 229, 228, 72, 23, 70, 124])
(t [236, 152, 113, 169, 125, 163, 173, 38, 235, 165, 27, 34, 7, 151, 238, 107] (stack B A) [121, 124, 255, 104, 67, 250, 221, 147, 96, 168, 230, 186, 214, 164, 101, 254])
(pre (pick-up $a) $b (, (state $b (clear $a)) (state $b (ontable $a)) (state $b (handempty))))
(pre (put-down $a) $b (, (state $b (holding $a))))
(pre (stack $a $b) $c (, (state $c (holding $a)) (state $c (clear $b))))
(pre (unstack $a $b) $c (, (state $c ($a on $b)) (state $c (clear $a)) (state $c (handempty))))

We can also construct a transition system for BlocksWorld with three blocks. To do so, we change the initial state as follows:

(state init (handempty))
(state init (clear A))
(state init (clear B))
(state init (clear C))
(state init (ontable A))
(state init (ontable B))
(state init (ontable C))
Full program output for three blocks
(hash init [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51])
(state init (handempty))
(state init (clear A))
(state init (clear B))
(state init (clear C))
(state init (ontable A))
(state init (ontable B))
(state init (ontable C))
(state [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (handempty))
(state [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (clear B))
(state [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (ontable C))
(state [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (A on C))
(state [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (B on A))
(state [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (clear A))
(state [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (clear B))
(state [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (holding C))
(state [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (ontable A))
(state [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (ontable B))
(state [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (handempty))
(state [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (clear C))
(state [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (ontable B))
(state [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (A on B))
(state [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (C on A))
(state [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (handempty))
(state [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (clear B))
(state [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (ontable A))
(state [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (B on C))
(state [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (C on A))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (handempty))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (clear A))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (clear C))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (ontable B))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (ontable C))
(state [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (A on B))
(state [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (clear B))
(state [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (clear C))
(state [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (holding A))
(state [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (ontable B))
(state [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (ontable C))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (handempty))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (clear A))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (clear B))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (ontable A))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (ontable C))
(state [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (B on C))
(state [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (clear B))
(state [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (holding A))
(state [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (ontable C))
(state [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (B on C))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (handempty))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (clear A))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (clear C))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (ontable A))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (ontable B))
(state [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (C on B))
(state [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (clear C))
(state [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (holding B))
(state [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (ontable A))
(state [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (C on A))
(state [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (clear A))
(state [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (holding B))
(state [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (ontable C))
(state [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (A on C))
(state [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (handempty))
(state [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (clear A))
(state [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (ontable B))
(state [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (A on C))
(state [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (C on B))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (handempty))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (clear B))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (clear C))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (ontable A))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (ontable B))
(state [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (C on A))
(state [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (handempty))
(state [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (clear C))
(state [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (ontable A))
(state [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (B on A))
(state [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (C on B))
(state [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (clear A))
(state [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (holding C))
(state [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (ontable B))
(state [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (A on B))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (handempty))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (clear B))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (clear C))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (ontable A))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (ontable C))
(state [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (B on A))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (handempty))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (clear A))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (clear B))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (clear C))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (ontable A))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (ontable B))
(state [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (ontable C))
(state [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (handempty))
(state [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (clear A))
(state [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (ontable C))
(state [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (A on B))
(state [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (B on C))
(state [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (clear B))
(state [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (holding C))
(state [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (ontable A))
(state [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (B on A))
(state [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (clear C))
(state [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (holding A))
(state [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (ontable B))
(state [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (C on B))
(state [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (clear A))
(state [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (clear C))
(state [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (holding B))
(state [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (ontable A))
(state [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (ontable C))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (handempty))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (clear A))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (clear B))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (ontable B))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (ontable C))
(state [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (A on C))
(neg-eff (pick-up $a) (handempty))
(neg-eff (pick-up $a) (clear $a))
(neg-eff (pick-up $a) (ontable $a))
(neg-eff (put-down $a) (holding $a))
(neg-eff (stack $a $b) (clear $b))
(neg-eff (stack $a $b) (holding $a))
(neg-eff (unstack $a $b) (handempty))
(neg-eff (unstack $a $b) (clear $a))
(neg-eff (unstack $a $b) ($a on $b))
(pos-eff (pick-up $a) (holding $a))
(pos-eff (put-down $a) (handempty))
(pos-eff (put-down $a) (clear $a))
(pos-eff (put-down $a) (ontable $a))
(pos-eff (stack $a $b) (handempty))
(pos-eff (stack $a $b) (clear $a))
(pos-eff (stack $a $b) ($a on $b))
(pos-eff (unstack $a $b) (clear $b))
(pos-eff (unstack $a $b) (holding $a))
(t [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4] (unstack B A) [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34])
(t [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (put-down C) [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51])
(t [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (stack C A) [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23])
(t [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93] (stack C B) [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87])
(t [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94] (unstack C A) [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231])
(t [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251] (unstack B C) [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176])
(t [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (pick-up C) [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231])
(t [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191] (unstack A B) [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18])
(t [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (put-down A) [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51])
(t [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (stack A B) [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191])
(t [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18] (stack A C) [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75])
(t [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (pick-up A) [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72])
(t [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167] (unstack B C) [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28])
(t [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (put-down A) [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167])
(t [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72] (stack A B) [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7])
(t [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (pick-up A) [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168])
(t [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87] (unstack C B) [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93])
(t [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (put-down B) [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23])
(t [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176] (stack B C) [27, 79, 99, 45, 123, 22, 227, 59, 254, 248, 145, 71, 220, 116, 86, 251])
(t [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (put-down B) [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75])
(t [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34] (stack B A) [8, 108, 59, 168, 217, 27, 38, 19, 144, 89, 116, 1, 177, 227, 232, 4])
(t [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0] (unstack A C) [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168])
(t [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (pick-up B) [125, 174, 11, 80, 58, 158, 105, 33, 219, 31, 91, 12, 128, 110, 76, 176])
(t [149, 139, 25, 99, 183, 137, 5, 203, 176, 94, 59, 244, 131, 253, 114, 23] (unstack C A) [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93])
(t [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63] (unstack C B) [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129])
(t [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (put-down C) [35, 219, 61, 222, 230, 173, 130, 70, 236, 14, 225, 224, 19, 22, 14, 191])
(t [226, 104, 227, 205, 13, 228, 47, 41, 108, 5, 24, 40, 54, 22, 204, 231] (stack C A) [17, 87, 139, 226, 168, 213, 229, 251, 7, 221, 226, 227, 153, 174, 34, 94])
(t [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (pick-up C) [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129])
(t [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140] (unstack B A) [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28])
(t [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (pick-up A) [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18])
(t [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (pick-up B) [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28])
(t [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51] (pick-up C) [9, 46, 150, 229, 117, 151, 191, 166, 121, 69, 39, 89, 118, 18, 42, 93])
(t [236, 241, 239, 160, 100, 195, 187, 48, 19, 80, 95, 47, 119, 78, 85, 7] (unstack A B) [112, 132, 237, 190, 211, 14, 106, 87, 237, 189, 65, 215, 77, 229, 84, 72])
(t [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (put-down C) [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140])
(t [242, 170, 13, 104, 138, 235, 32, 135, 253, 235, 91, 20, 79, 21, 220, 129] (stack C B) [202, 115, 220, 151, 138, 178, 146, 14, 68, 11, 127, 65, 180, 110, 185, 63])
(t [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (put-down A) [115, 252, 106, 148, 82, 54, 228, 164, 84, 4, 162, 92, 108, 247, 186, 87])
(t [243, 44, 183, 152, 128, 119, 172, 221, 33, 160, 167, 78, 123, 213, 222, 168] (stack A C) [144, 96, 3, 242, 123, 169, 160, 18, 95, 202, 112, 74, 117, 200, 121, 0])
(t [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (put-down B) [234, 126, 54, 94, 10, 71, 49, 237, 162, 103, 103, 230, 79, 77, 129, 51])
(t [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (stack B A) [232, 36, 139, 200, 118, 47, 140, 107, 53, 78, 235, 145, 255, 162, 110, 140])
(t [244, 121, 44, 96, 54, 69, 246, 175, 32, 38, 167, 199, 186, 102, 236, 28] (stack B C) [53, 226, 10, 156, 215, 230, 243, 140, 62, 99, 1, 218, 132, 2, 253, 167])
(t [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (pick-up B) [140, 75, 57, 81, 155, 157, 89, 109, 139, 13, 130, 68, 180, 42, 126, 34])
(t [250, 197, 100, 18, 57, 240, 43, 94, 219, 237, 26, 10, 149, 193, 170, 75] (unstack A C) [42, 44, 90, 167, 104, 27, 49, 150, 36, 151, 68, 223, 78, 113, 100, 18])
(pre (pick-up $a) $b (, (state $b (clear $a)) (state $b (ontable $a)) (state $b (handempty))))
(pre (put-down $a) $b (, (state $b (holding $a))))
(pre (stack $a $b) $c (, (state $c (holding $a)) (state $c (clear $b))))
(pre (unstack $a $b) $c (, (state $c ($a on $b)) (state $c (clear $a)) (state $c (handempty))))

Clone this wiki locally