          (advice ?advice)
          (equals ?pointcut (.getPointcut ?advice))))
   
-(clojure.core/declare pointcutdefinition-pointcut)
-
-(defn
-  pointcut
-  "Relation of all pointcuts known to the AspectJ weaver.
-   Note that these are not pointcut definitions."
-  [?pointcut]
-  (fresh [?pointcutdefinition]
-         (pointcutdefinition-pointcut ?pointcutdefinition ?pointcut)))
-
-
-(defn
-  advice-pointcut
-  "Relation between an Advice ?advice and its Pointcut ?pointcut.
-   Note that these are different from the ResolvedPointcutDefinition instances returned
-   by aspect-pointcutdefinition."
-  [?advice ?pointcut]
-  (fresh [?raw]
-         (advice-poincut|raw ?advice ?raw)
-         (succeeds (instance? AndPointcut ?raw)) ;;TODO: check whether others are possible?
-         (equals ?pointcut (.getLeft ?raw))))
-
-(defn
-  advice-pointcutdefinition
-  [?advice ?pointcutdefinition]
-  (fresh [?pc]
-         (advice-pointcut ?advice ?pc)
-         (pointcutdefinition-pointcut ?pointcutdefinition ?pc)))
-    
-  
-                   
-
-;;TODO: decide whether to define relations on Pointcut hierarcy or on PointcutDefinitionHierarchy? 
-;; (latter is probably better, given concrete/abstract)
-
-
-;; Pointcut definitions
-;; --------------------
-
-(defn
-  aspect-pointcutdefinitions
-  "Relation between an aspect and its declared pointcutdefinitions.
-   Note that these are instances of ResolvedPointcutDefinition,
-   rather than the Pointcut instances within ShadowMungers (advice)."
-  [?aspect ?pointcutdefinitions]
-  (all 
-    (aspect ?aspect)
-    (equals ?pointcutdefinitions (.getDeclaredPointcuts ?aspect))))
-
-(def
-  ^{:doc "Alias for aspect-pointcutdefinitions."}
-  type-pointcutdefinitions
-  aspect-pointcutdefinitions)
-
-(defn
-  aspect-pointcutdefinition
-  "Relation between an aspect and one of the pointcuts it declares.
-   Note that these are instances of ResolvedPointcutDefinition,
-   rather than the Pointcut instances within ShadowMungers (advice)."
-  [?aspect ?pointcutdefinition]
-  (fresh [?pointcutdefinitions] 
-         (aspect-pointcutdefinitions ?aspect ?pointcutdefinitions)
-         (contains ?pointcutdefinitions ?pointcutdefinition)))
-    
-(def
-  ^{:doc "Alias for aspect-pointcutdefinition."}
-  type-pointcutdefinition
-  aspect-pointcutdefinition)
-
-(defn
-  pointcutdefinition
-  "Relation of pointcuts known to the weaver.
-   Note: these are instances of ResolvedPointcutDefinition."
-  [?pointcut]
-  (fresh [?aspect]
-         (aspect-pointcutdefinition ?aspect ?pointcut)))
-
 
 ;; some info: 
 ;; KindedPointcut or MatchesNothingPointcut returned by

    (element-enclosingtypedeclaration-element  ?shadow ?element)
    (element-type ?element ?type)))

     
    (type-methods ?resolvedtype ?methods)
    (contains ?methods ?method)))

(defn
  type-method+
  "Relation between a type and one of its declared or inherited methods (as known to the weaver)."
