tpdb 0.6.0 → 0.6.1
raw patch · 2 files changed
+43/−7 lines, 2 filesdep ~containers
Dependency ranges changed: containers
Files
- TPDB/DP.hs +36/−0
- tpdb.cabal +7/−7
+ TPDB/DP.hs view
@@ -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 }
tpdb.cabal view
@@ -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