RULES

(symmetric-connect
 IF (connect-from ?x ?y)
 THEN (connect-from ?y ?x))

(start-from-tech-square
 IF (connect-from tech-square ?x)
 THEN (reachable-from-tech-square ?x (tech-square ?x)))

(reach-from-tech-square
 IF (reachable-from-tech-square ?x ?path)
 (connect-from ?x ?y)
 THEN (reachable-from-tech-square ?y (?path ?y)))

(stop
 IF (reachable-from-tech-square harvard-square ?x)
 THEN (STOP))

ASSERTIONS

(connect-from tech-square central-square)
(connect-from tech-square inman-square)
(connect-from tech-square cambridge-port)
(connect-from inman-square porter-square)
(connect-from inman-square central-square)
(connect-from harvard-square fresh-pond)
(connect-from cambridge-port harvard-square)
(connect-from central-square harvard-square)

