TPTP Problem File: LCL406-1.p

View Solutions - Solve Problem

%--------------------------------------------------------------------------
% File     : LCL406-1 : TPTP v8.2.0. Released v2.4.0.
% Domain   : Logic Calculi (Linear-time temporal)
% Problem  : Generate LTL structures of size 4
% Version  : [Zha00] axioms.
% English  :

% Refs     : [Zha00] Zhang (2000), Test Problem and Perl Scripts for Finite
% Source   : [Zha00]
% Names    :

% Status   : Satisfiable
% Rating   : 0.30 v8.2.0, 0.40 v8.1.0, 0.38 v7.5.0, 0.33 v7.4.0, 0.36 v7.3.0, 0.33 v7.1.0, 0.38 v7.0.0, 0.43 v6.4.0, 0.29 v6.3.0, 0.25 v6.2.0, 0.10 v6.1.0, 0.22 v6.0.0, 0.14 v5.5.0, 0.25 v5.4.0, 0.50 v5.3.0, 0.44 v5.2.0, 0.50 v5.0.0, 0.56 v4.1.0, 0.57 v4.0.1, 0.60 v4.0.0, 0.25 v3.7.0, 0.33 v3.4.0, 0.50 v3.3.0, 0.00 v3.2.0, 0.40 v3.1.0, 0.00 v2.6.0, 0.43 v2.5.0, 0.17 v2.4.0
% Syntax   : Number of clauses     :    5 (   1 unt;   2 nHn;   3 RR)
%            Number of literals    :   13 (   5 equ;   4 neg)
%            Maximal clause size   :    5 (   2 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    2 (   1 usr;   0 prp; 2-2 aty)
%            Number of functors    :    1 (   1 usr;   0 con; 1-1 aty)
%            Number of variables   :   10 (   0 sgn)
% SPC      : CNF_SAT_RFO_EQU_NUE

% Comments : Intuitively, LTL is based on the model of natural numbers:
%            {0,1,2, ...}. But *propositional* temporal logic has the finite
%            model property, which means, any satisfiable formula has finite
%            models. Such a model is usually like this:
%              next(0) = 1, next(1) = 2, ...
%              next(k-2) = k-1, next(k-1) = l, 0 <= l < k.
%            So the "nexttime" operator is not exactly the same as "<" or ">".
%            There are k different models.
%--------------------------------------------------------------------------
cnf(reflexivity_of_less_or_equal,axiom,
    less_or_equal(X,X) ).

cnf(transitivity_of_less_or_equal,axiom,
    ( ~ less_or_equal(X,Y)
    | ~ less_or_equal(Y,Z)
    | less_or_equal(X,Z) ) ).

cnf(completeness_of_less_or_equal,axiom,
    ( less_or_equal(X,Y)
    | less_or_equal(Y,X) ) ).

cnf(predecessor_less_or_equal,axiom,
    ( successor(X) != Y
    | less_or_equal(X,Y) ) ).

cnf(four_step_successor,axiom,
    ( ~ less_or_equal(X,Y)
    | Y = X
    | Y = successor(X)
    | Y = successor(successor(X))
    | Y = successor(successor(successor(X))) ) ).

%--------------------------------------------------------------------------