(THGOAL (ON A B))

(THASSERT (ON-TABLE A))
(THASSERT (ON-TABLE B))
(THASSERT (ON-TABLE C))
(THASSERT (CLEAR A))
(THASSERT (CLEAR B))
(THASSERT (CLEAR C))

(THCONSE (ON ?x ?y)
  (THGOAL (CLEAR ?x))
  (THGOAL (CLEAR ?y))
  (THERAT (ON-TABLE ?x))
  (THERASE (CLEAR ?y))
  (THASSERT (ON ?x ?y))
  (THASSERT (CLEAR ?x)))

(THCONSE (CLEAR ?x)
  (THGOAL (ON ?y ?x))
  (THERASE (ON ?y ?x))
  (THASSERT (ON-TABLE ?y))
  (THASSERT (CLEAR ?x)))
