diff --git a/TPDB/DP.hs b/TPDB/DP.hs
new file mode 100644
--- /dev/null
+++ b/TPDB/DP.hs
@@ -0,0 +1,36 @@
+module TPDB.DP where
+
+import TPDB.Data
+import TPDB.Pretty
+import Text.PrettyPrint.HughesPJ
+
+import qualified Data.Set as S
+import Control.Monad ( guard )
+
+data Marked a = Original a | Marked a | Auxiliary a
+    deriving ( Eq, Ord )
+
+instance Pretty a => Pretty ( Marked a) where
+   pretty m = case m of
+       Original a -> pretty a
+       Marked a -> pretty a <> text "#"
+       Auxiliary a -> pretty a
+
+dp s = 
+   let marked (Node f args) = 
+          Node (Marked f) $ map (fmap Original) args
+       os = map ( \ u -> Rule { relation = Weak
+                               , lhs = fmap Original $ lhs u  
+                               , rhs = fmap Original $ rhs u  
+                               } )
+           $ rules s
+       defined = S.fromList $ do 
+                u <- rules s
+                let Node f args = lhs u 
+                return f
+       us = do 
+            u <- rules s
+            (_, r @ (Node f args)) <- positions $ rhs u
+            guard $ S.member f defined
+            return $ u { lhs = marked $ lhs u, rhs = marked r }
+   in RS { rules = us ++ os, separate = separate s } 
diff --git a/tpdb.cabal b/tpdb.cabal
--- a/tpdb.cabal
+++ b/tpdb.cabal
@@ -1,5 +1,5 @@
 Name: tpdb
-Version: 0.6.0
+Version: 0.6.1
 Author: Johannes Waldmann
 Maintainer: Johannes Waldmann
 Category: Science
@@ -20,7 +20,7 @@
 
 Source-Repository head
   Type: git
-  Location: git://dfa.imn.htwk-leipzig.de/srv/git/tpdb/
+  Location: git://github.com/jwaldmann/haskell-tpdb.git
 
 -- Extra-Source-Files:
 --   test/3.15.xml, test/33.trs ,  test/z001.srs
@@ -31,7 +31,7 @@
   Exposed-Modules:
     TPDB.Data,     TPDB.Data.Term, TPDB.Data.Xml
     TPDB.Compress, TPDB.Convert, TPDB.Input
-    TPDB.Mirror, 
+    TPDB.Mirror, TPDB.DP
     TPDB.Pretty, TPDB.Plain.Write,     TPDB.Plain.Read,
     TPDB.XTC,  TPDB.XTC.Read, TPDB.Xml, 
     TPDB.Rainbow.Proof.Xml,     TPDB.Rainbow.Proof.Type
@@ -39,22 +39,22 @@
 
 Executable Compressor
     Main-is: Compressor.hs
-    Build-depends: base==4.*, containers, directory, pretty, hxt, parsec
+    Build-depends: base==4.*, containers >= 0.5, directory, pretty, hxt, parsec
 
 Test-Suite XML
-  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers, HaXml
+  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers  >= 0.5, HaXml
   Type: exitcode-stdio-1.0
   main-is: read_print_xml.hs
   hs-source-dirs: test .
 
 Test-Suite TRS
-  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers, HaXml
+  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers  >= 0.5, HaXml
   Type: exitcode-stdio-1.0
   main-is: read_print_trs.hs
   hs-source-dirs: test .
 
 Test-Suite SRS
-  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers, HaXml
+  Build-Depends: base==4.*, hxt, pretty, parsec, time, containers  >= 0.5, HaXml
   Type: exitcode-stdio-1.0
   main-is: read_print_srs.hs
 
