## TPTP Problem File: MSC014-10.p

View Solutions - Solve Problem

```%------------------------------------------------------------------------------
% File     : MSC014-10 : TPTP v7.5.0. Released v7.5.0.
% Domain   : Puzzles
% Problem  : Find a model with a functional relation which is injective, n=4
% Version  : Especial.
% English  :

% Refs     : [CS18]  Claessen & Smallbone (2018), Efficient Encodings of Fi
%          : [Sma18] Smallbone (2018), Email to Geoff Sutcliffe
% Source   : [Sma18]
% Names    :

% Status   : Satisfiable
% Rating   : 0.25 v7.5.0
% Syntax   : Number of clauses     :   12 (   0 non-Horn;  12 unit;   5 RR)
%            Number of atoms       :   12 (  12 equality)
%            Maximal clause size   :    1 (   1 average)
%            Number of predicates  :    1 (   0 propositional; 2-2 arity)
%            Number of functors    :   10 (   5 constant; 0-5 arity)
%            Number of variables   :   46 (  26 singleton)
%            Maximal term depth    :    7 (   2 average)
% SPC      : CNF_SAT_RFO_PEQ_UEQ

% Comments : Converted from MSC014+1 to UEQ using [CS18].
%------------------------------------------------------------------------------
cnf(ifeq_axiom,axiom,
( ifeq2(A,A,B,C) = B )).

cnf(ifeq_axiom_001,axiom,
( ifeq(A,A,B,C) = B )).

cnf(n0_and_n1_reflexive_1,axiom,
( equalish(n0,n0) = true )).

cnf(n0_and_n1_reflexive,axiom,
( equalish(n1,n1) = true )).

cnf(exists_f,axiom,
( ifeq2(equalish(X4,X4),true,ifeq2(equalish(X3,X3),true,ifeq2(equalish(X2,X2),true,ifeq2(equalish(X1,X1),true,f(X1,X2,X3,X4,sK1_exists_f_Z(X1,X2,X3,X4)),true),true),true),true) = true )).

cnf(inject_f_3,axiom,
( ifeq2(f(Y1,Y2,Y3,Y4,Z),true,ifeq2(f(X1,X2,X3,X4,Z),true,equalish(X4,Y4),true),true) = true )).

cnf(inject_f_2,axiom,
( ifeq2(f(Y1,Y2,Y3,Y4,Z),true,ifeq2(f(X1,X2,X3,X4,Z),true,equalish(X3,Y3),true),true) = true )).

cnf(inject_f_1,axiom,
( ifeq2(f(Y1,Y2,Y3,Y4,Z),true,ifeq2(f(X1,X2,X3,X4,Z),true,equalish(X2,Y2),true),true) = true )).

cnf(inject_f,axiom,
( ifeq2(f(Y1,Y2,Y3,Y4,Z),true,ifeq2(f(X1,X2,X3,X4,Z),true,equalish(X1,Y1),true),true) = true )).

cnf(n0_not_n1_1,axiom,
( ifeq(equalish(n0,n1),true,a,b) = b )).

cnf(n0_not_n1,axiom,
( ifeq(equalish(n1,n0),true,a,b) = b )).

cnf(goal,negated_conjecture,
( a != b )).

%------------------------------------------------------------------------------
```