     (superinterface+ ?interface ?subinterface)
     (aspect-declareparents-interface ?aspect ?target ?subinterface)))
 )
+
+;;===========================================================================================
 
 ;;paper 3.1.1 assumption 2, case 1
 (defn

     (pointcut-name ?pc1 ?name)
     (pointcut-name ?pc2 ?name)))

 
(comment  
;; work in progress   
  (defn
  aspect-alldefdpointcuts
  [?aspect ?pointcuts]
  (findall ?pointcut (aspect-pointcutdefinition ?aspect ?pointcut) ?pointcuts))

  
;;to test
;;How to check that all pointcuts defined in the super are used in both subs?
;;paper 3.1.1 assumption 2, case 2
(defn
  samepointcuts-reuse-super-sub1-sub2
  [?superaspect ?aspect1 ?aspect2]
  (l/fresh [?pointcut ?advice1 ?advice2]
    (aspect-declaredsuperaspect+ ?aspect1 ?superaspect)
    (aspect-declaredsuperaspect+ ?aspect2 ?superaspect)
    (!= ?aspect1 ?aspect2)
    (aspect-pointcutdefinition ?superaspect ?pointcut)
    (aspect-advice ?aspect1 ?advice1)
    (aspect-advice ?aspect2 ?advice2)
    (advice-pointcut ?advice1 ?pointcut)
    (advice-pointcut ?advice2 ?pointcut)))
  )  
)

(comment

;;===========================================================================================
  
;;MOCK -- waiting for Coen 
(defn
  markerinterface
