packages feed

tptp 0.1.2.0 → 0.1.3.0

raw patch · 13 files changed

+118/−27 lines, 13 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.TPTP: polymorphizeFirstOrder :: MonomorphicFirstOrder -> PolymorphicFirstOrder
+ Data.TPTP: sortFirstOrder :: UnsortedFirstOrder -> SortedFirstOrder
+ Data.TPTP: unsortFirstOrder :: MonomorphicFirstOrder -> Maybe UnsortedFirstOrder

Files

CHANGELOG.md view
@@ -1,5 +1,13 @@ # Revision history for tptp +## 0.1.3.0 -- 2021-01-11++* Parse SZS comment annotations more liberally.++* Add functions 'sortFirstOrder', 'unsortFirstOrder', and 'polymorphizeFirstOrder'.++* Support compilation with GHC 8.8.4 and 8.10.3.+ ## 0.1.2.0 -- 2020-04-03  * Consume leading whitespace in the TSTP parser.
src/Data/TPTP.hs view
@@ -1,21 +1,25 @@-{-# LANGUAGE DeriveFunctor, DeriveTraversable, DeriveFoldable #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ == 708+{-# LANGUAGE DeriveFunctor, DeriveFoldable #-}+#endif+{-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE PatternGuards #-} {-# LANGUAGE LambdaCase #-}-{-# LANGUAGE CPP #-}  -- | -- Module       : Data.TPTP -- Description  : Data type definitions for the syntax of the TPTP language.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental --+-- The syntax of the TPTP language. -- See [the BNF grammar](http://tptp.cs.miami.edu/TPTP/SyntaxBNF.html)--- definition of the TPTP language for details.+-- definition of TPTP for details. --  module Data.TPTP (@@ -69,7 +73,10 @@   UnsortedFirstOrder,   SortedFirstOrder,   MonomorphicFirstOrder,+  sortFirstOrder,+  unsortFirstOrder,   PolymorphicFirstOrder,+  polymorphizeFirstOrder,   monomorphizeFirstOrder,    -- * Units@@ -655,6 +662,20 @@ -- | The formula in sorted monomorphic first-order logic. type MonomorphicFirstOrder = FirstOrder (Sorted (Name Sort)) +-- | Convert a formula in unsorted first-order logic to a formula in sorted+-- monomorphic first-order logic trivially by omitting the sort annotations+-- in all of its quantifiers. This function always succeeds.+sortFirstOrder :: UnsortedFirstOrder -> SortedFirstOrder+sortFirstOrder = fmap omit where omit _ = Sorted Nothing++-- | Attempt to erase the sort annotations in a sorted monomorphic first-order+-- formula. This function succeeds iff each of the quantifiers omits the sorts+-- of its variables.+unsortFirstOrder :: MonomorphicFirstOrder -> Maybe UnsortedFirstOrder+unsortFirstOrder = traverse $ \case+  Sorted Nothing -> Just (Unsorted ())+  Sorted Just{}  -> Nothing+ -- | The marker of quantified sort. newtype QuantifiedSort = QuantifiedSort ()   deriving (Eq, Show, Ord)@@ -662,12 +683,18 @@ -- | The formula in sorted polymorphic first-order logic. type PolymorphicFirstOrder = FirstOrder (Sorted (Either QuantifiedSort TFF1Sort)) +-- | Polymorphize a sorted monomorphic first-order formula.+-- This function always succeeds.+polymorphizeFirstOrder :: MonomorphicFirstOrder -> PolymorphicFirstOrder+polymorphizeFirstOrder = fmap (fmap polymorphize)+  where polymorphize s = Right (TFF1Sort s [])+ -- | Attempt to monomorphize a polymorphic sorted first-order formula. -- This function succeeds iff each of the quantifiers only uses sort--- constructors with zero arity.+-- constructors with zero arity and there are no quantified sorts. monomorphizeFirstOrder :: PolymorphicFirstOrder -> Maybe MonomorphicFirstOrder-monomorphizeFirstOrder = traverse . traverse-                       $ either (const Nothing) monomorphizeTFF1Sort+monomorphizeFirstOrder = traverse (traverse monomorphize)+  where monomorphize = either (const Nothing) monomorphizeTFF1Sort   -- * Units
src/Data/TPTP/Parse/Combinators.hs view
@@ -7,7 +7,7 @@ -- | -- Module       : Data.TPTP.Parse.Combinators -- Description  : Parser combinators for the TPTP language.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental@@ -485,7 +485,10 @@ szs = fromMaybe mempty . mconcat <$> many szsComment  szsComment :: Parser (Maybe SZS)-szsComment =  commented (skipSpace *> optional szsAnnotation) <* skipSpace+szsComment =  commented (skipSpace *>+                         optional (skipBeginComment *> skipSpace) *>+                         optional szsAnnotation)+          <*  skipSpace           <?> "szs comment"  szsAnnotation :: Parser SZS@@ -535,7 +538,7 @@ infos = bracketList info <?> "infos" {-# INLINE infos #-} --- | Parse and expression+-- | Parse an expression. expr :: Parser Expression expr =  char '$' *> (labeled "fot" (Term <$> optionalParens term)                 <|>  Logical <$> (language >>= parens . optionalParens . formula))
src/Data/TPTP/Parse/Text.hs view
@@ -1,7 +1,7 @@ -- | -- Module       : Data.TPTP.Parse.Text -- Description  : An attoparsec-based parser for the TPTP language.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
src/Data/TPTP/Parse/Text/Lazy.hs view
@@ -1,7 +1,7 @@ -- | -- Module       : Data.TPTP.Parse.Text.Lazy -- Description  : An attoparsec-based parser for the TPTP language.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
src/Data/TPTP/Pretty.hs view
@@ -7,7 +7,7 @@ -- | -- Module       : Data.TPTP.Pretty -- Description  : Pretty printers for the TPTP language.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
+ test-data/szs/fof/ski---Vampire.s view
@@ -0,0 +1,37 @@+% SZS status CounterSatisfiable for +% # SZS output start Saturation.+tff(u47,axiom,+    trace(s,nil,bot)).++tff(u46,axiom,+    trace(i,nil,bot)).++tff(u45,axiom,+    (![X0] : (trace(ap(k,X0),nil,bot)))).++tff(u44,axiom,+    (![X0] : (trace(ap(s,X0),nil,bot)))).++tff(u43,axiom,+    (![X1, X0] : (trace(ap(ap(s,X0),X1),nil,bot)))).++tff(u42,axiom,+    trace(k,nil,bot)).++tff(u41,axiom,+    (![X0] : (trace(ap(i,X0),nil,X0)))).++tff(u40,axiom,+    (![X1, X0] : (trace(ap(ap(k,X0),X1),nil,X0)))).++tff(u39,axiom,+    (![X1, X0, X2] : (trace(ap(ap(ap(s,X0),X1),X2),nil,ap(ap(X0,X2),ap(X1,X2)))))).++tff(u38,negated_conjecture,+    trace(ap(ap(ap(s,i),i),k),sK0,bot)).++tff(u37,axiom,+    (![X1, X3, X0, X2] : ((trace(X0,cons(X1,X3),X2) | ~trace(X1,nil,X2) | ~trace(X0,X3,X1))))).++% # SZS output end Saturation.+
test/QuickCheckSpec/ArbitrarilyPretty.hs view
@@ -1,15 +1,18 @@-{-# LANGUAGE DeriveFunctor, DeriveTraversable, DeriveFoldable #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ == 708+{-# LANGUAGE DeriveFunctor, DeriveFoldable #-}+#endif+{-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE LambdaCase #-}-{-# LANGUAGE CPP #-}  -- | -- Module       : ArbitrarilyPretty -- Description  : Generators for randomized pretty outputs of TPTP expressions.--- Copyright    : (c) Evgenii Kotelnikov, 2020+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental@@ -295,7 +298,7 @@     Type        as r -> sppretty (Mapping as r)     TFF1Type [] as r -> sppretty (Mapping as r)     TFF1Type vs as r -> do-      vs' <- mapM sppretty (fmap (flip Typing_ tType) vs)+      vs' <- mapM sppretty (fmap (`Typing_` tType) vs)       t' <- sppretty (Prefix colon (ParensUnless (null as) (TFF1Type [] as r)))       return ("!>" <+> brackets (hsep (punctuate comma vs')) <> t') 
test/QuickCheckSpec/Generators.hs view
@@ -7,7 +7,7 @@ -- | -- Module       : Generators -- Description  : QuickCheck generators for datatypes in the tptp library.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
test/QuickCheckSpec/Main.hs view
@@ -8,7 +8,7 @@ -- | -- Module       : Main -- Description  : QuickCheck specification for the tptp library.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental@@ -100,7 +100,11 @@        => Parser e -> e -> Property spAipp = spAippModulo defaultNormalize +-- | Idempotent encoding / decoding.+(~=) :: (Eq a, Show a) => (a -> b) -> (b -> Maybe a) -> a -> Property+(~=) to from a = Just a === from (to a) + -- * Properties  -- ** Generators@@ -232,6 +236,15 @@  prop_ipp_Info :: Info -> Property prop_ipp_Info = ippModulo normalizeInfo info+++-- ** Conversions++prop_unsortFirstOrder :: UnsortedFirstOrder -> Property+prop_unsortFirstOrder = sortFirstOrder ~= unsortFirstOrder++prop_monomorphizeFirstOrder :: MonomorphicFirstOrder -> Property+prop_monomorphizeFirstOrder = polymorphizeFirstOrder ~= monomorphizeFirstOrder   -- * Runner
test/QuickCheckSpec/Normalizers.hs view
@@ -3,7 +3,7 @@ -- | -- Module       : Normalizers -- Description  : Normalization of the Data.TPTP datatypes.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
test/UnitTests.hs view
@@ -6,7 +6,7 @@ -- | -- Module       : UnitTests -- Description  : Run the TPTP parser on selected examples from the TPTP World.--- Copyright    : (c) Evgenii Kotelnikov, 2019+-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021 -- License      : GPL-3 -- Maintainer   : evgeny.kotelnikov@gmail.com -- Stability    : experimental
tptp.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: tptp-version: 0.1.2.0+version: 0.1.3.0 synopsis: Parser and pretty printer for the TPTP language description:   <http://www.tptp.org TPTP> (Thousands of Problems for Theorem Provers)@@ -25,8 +25,8 @@   GHC == 8.2.2,   GHC == 8.4.4,   GHC == 8.6.5,-  GHC == 8.8.3,-  GHC == 8.10.1+  GHC == 8.8.4,+  GHC == 8.10.3  extra-source-files:   CHANGELOG.md@@ -75,7 +75,7 @@       -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns       -Wredundant-constraints -test-suite quickcheck-spec+test-suite quickcheck   type: exitcode-stdio-1.0   hs-source-dirs: test/QuickCheckSpec   default-language: Haskell2010@@ -104,7 +104,7 @@     build-depends:       bifunctors   >= 3.0.1   && < 6 -test-suite unit-tests+test-suite unit   type: detailed-0.9   hs-source-dirs: test   default-language: Haskell2010@@ -126,7 +126,7 @@     filepath  >= 1.3   && < 1.5,     tptp -test-suite doctests+test-suite doctest   type: exitcode-stdio-1.0   hs-source-dirs: test/DocTests   default-language: Haskell2010