TPTP vs Others

XML

SMT2

TPTP

<scl:formula  xmlns:scl="http://scluripart">
  <scl:quantifier scl:name="exists" 
  scl:variable="x">
     <scl:connective scl:name="implies">
        <scl:predicate scl:name="p">
            <scl:term scl:name="X"/>
            <scl:term scl:name="a"/>
        </scl:predicate>  
        <scl:predicate scl:name="equal">
            <scl:term scl:name="a"/>
            <scl:term scl:name="X"/>
        </scl:predicate>        
     </scl:connective>                      
  </scl:quantifier>
</scl:formula> 
(set-logic UF)
(declare-sort sort1 0)
(declare-fun a ( ) sort1)
(declare-fun p ( sort1 sort1 ) Bool)
(assert 
    (exists ((?X sort1))
      (=> (p ?X a)
          (p a ?X))))
     
fof(the_name,axiom,
    ? [X] :
      ( p(X,1)
     => equal(X,1) ) ). 

Pros

  • Free parser with every language
  • Parsers build you a data structure
  • Extensible, without affecting tools

Pros

  • Machine readable, writable (LISP)
  • Focussed, but extensible
  • Low storage overhead

Pros

  • Human and machine readable, writable (Prolog)
  • Focussed, but extensible
  • Medium storage overhead
  • Identifiers (for proofs)
  • Formula roles (to help ATPs)

Cons

  • High storage overhead
  • Not focussed on logic - too generic

Cons

  • Not really human readable, writable
  • No unsorted variant
  • No formula identifiers (for proofs)
  • No formula roles (to help ATPs)

Cons

  • Medium storage overhead
  • Too verbose (for some)