TPTP dump
- Axioms
- Agents
- Abstract Algebra
- Analysis
- Category Theory
- Combinatory Logic
- Computing Theory
- Commonsense Reasoning
- Data Structures
- Field Theory
- Geometry
- ./GEO001-0.ax
- ./GEO001-1.ax
- ./GEO002-0.ax
- ./GEO002-1.ax
- ./GEO002-2.ax
- ./GEO002-3.ax
- ./GEO003-0.ax
- ./GEO004+0.ax
- ./GEO004+1.ax
- ./GEO004+2.ax
- ./GEO004+3.ax
- ./GEO004-0.ax
- ./GEO004-1.ax
- ./GEO004-2.ax
- ./GEO004-3.ax
- ./GEO005-0.ax
- ./GEO006+0.ax
- ./GEO006+1.ax
- ./GEO006+2.ax
- ./GEO006+3.ax
- ./GEO006+4.ax
- ./GEO006+5.ax
- ./GEO006+6.ax
- ./GEO007+0.ax
- ./GEO007+1.ax
- ./GEO008+0.ax
- ./GEO009+0.ax
- ./GEO010+0.ax
- ./GEO010+1.ax
- ./GEO011+0.ax
- ./GEO012+0.ax
- Graph Theory
- Group Theory
- Homological Algebra
- Henkin Models
- Hardware Creation
- Hardware Verification
- Kleene Algebra
- Knowledge Representation
- Lattice Theory
- Logic Calculi
- ./LCL001-0.ax
- ./LCL001-1.ax
- ./LCL001-2.ax
- ./LCL002-0.ax
- ./LCL002-1.ax
- ./LCL003-0.ax
- ./LCL004-0.ax
- ./LCL004-1.ax
- ./LCL004-2.ax
- ./LCL005-0.ax
- ./LCL006+0.ax
- ./LCL006+1.ax
- ./LCL006+2.ax
- ./LCL006+3.ax
- ./LCL006+4.ax
- ./LCL006+5.ax
- ./LCL007+0.ax
- ./LCL007+1.ax
- ./LCL007+2.ax
- ./LCL007+3.ax
- ./LCL007+4.ax
- ./LCL007+5.ax
- ./LCL007+6.ax
- ./LCL008^0.ax
- ./LCL009^0.ax
- ./LCL010^0.ax
- ./LCL011^0.ax
- ./LCL012^0.ax
- ./LCL013^0.ax
- ./LCL013^1.ax
- ./LCL013^2.ax
- ./LCL013^3.ax
- ./LCL013^4.ax
- ./LCL013^5.ax
- ./LCL013^6.ax
- ./LCL014^0.ax
- ./LCL015^0.ax
- ./LCL015^1.ax
- ./LCL016^0.ax
- ./LCL016^1.ax
- ./LCL017^0.ax
- ./LCL017^1.ax
- ./LDA001-0.ax
- ./MAT001^0.ax
- ./MED001+0.ax
- ./MED001+1.ax
- ./MED002+0.ax
- ./MGT001+0.ax
- ./MGT001-0.ax
- ./MSC001-0.ax
- ./MSC001-1.ax
- ./MSC001-2.ax
- ./MVA001-0.ax
- ./NLP001+0.ax
- Number Theory
- Philosophy
- Planning
- Puzzles
- Quantales
- Relation Algebra
- Ring Theory
- Robbins Algebra
- Set Theory
- Semantic Web
- ./SWB001+0.ax
- ./SWB002+0.ax
- ./SWB003+0.ax
- ./SWB003+1.ax
- ./SWC001+0.ax
- ./SWC001-0.ax
- ./SWV001-0.ax
- ./SWV002-0.ax
- ./SWV003+0.ax
- ./SWV004-0.ax
- ./SWV005-0.ax
- ./SWV005-1.ax
- ./SWV005-2.ax
- ./SWV005-3.ax
- ./SWV005-4.ax
- ./SWV005-5.ax
- ./SWV005-6.ax
- ./SWV005-7.ax
- ./SWV006-0.ax
- ./SWV006-1.ax
- ./SWV006-2.ax
- ./SWV006-3.ax
- ./SWV007+0.ax
- ./SWV007+1.ax
- ./SWV007+2.ax
- ./SWV007+3.ax
- ./SWV007+4.ax
- ./SWV008^0.ax
- ./SWV008^1.ax
- ./SWV008^2.ax
- ./SWV009+0.ax
- ./SWV010^0.ax
- ./SWV011+0.ax
- ./SWV012+0.ax
- ./SWV013-0.ax
- ./SYN000+0.ax
- ./SYN000-0.ax
- ./SYN000^0.ax
- ./SYN000_0.ax
- ./SYN001-0.ax
- ./SYN002+0.ax
- ./TOP001-0.ax
Axioms
I took a dump of every axiom file less than 500 lines long. Many are clearly computer generated. The SET007 is a dump of Mizar definitions. Also automated but somewhat readable ITP001 is a dump of ITP problems
Agents
./AGT001+0.ax
%------------------------------------------------------------------------------
% File : AGT001+0 : TPTP v8.2.0. Released v2.7.0.
% Domain : Agents
% Axioms : CPlanT system
% Version : [Bar03] axioms : Especial.
% English :
% Refs : [Bar03] Barta, J. (2003), Email to G. Sutcliffe
% Source : [Bar03]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 20 ( 0 unt; 0 def)
% Number of atoms : 98 ( 0 equ)
% Maximal formula atoms : 6 ( 4 avg)
% Number of connectives : 79 ( 1 ~; 0 |; 58 &)
% ( 14 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 7 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 10 ( 10 usr; 0 prp; 2-4 aty)
% Number of functors : 47 ( 47 usr; 47 con; 0-0 aty)
% Number of variables : 35 ( 35 !; 0 ?)
% SPC :
% Comments : Requires NUM005+0.ax NUM005+1.ax
%------------------------------------------------------------------------------
fof(a1_1,axiom,
! [A,C,N,L] :
( accept_team(A,L,C,N)
<=> ( accept_city(A,C)
& accept_leader(A,L)
& accept_number(A,N) ) ) ).
fof(a1_2,axiom,
! [A,N,M] :
( ( accept_number(A,N)
& less(M,N) )
=> accept_number(A,M) ) ).
fof(a1_3,axiom,
! [A,N,M,P] :
( ( accept_population(A,P,N)
& less(M,N) )
=> accept_population(A,P,M) ) ).
fof(a1_4,axiom,
! [A,L,C] :
( the_agent_in_all_proposed_teams(A,L,C)
=> ( accept_leader(A,L)
& accept_city(A,C) ) ) ).
fof(a1_5,axiom,
! [A,L,C] :
( any_agent_in_all_proposed_teams(A,L,C)
=> accept_leader(A,L) ) ).
fof(a1_6,axiom,
! [A,L,C] :
( the_agent_not_in_any_proposed_teams(A,L,C)
=> ~ ( accept_city(A,C)
& accept_leader(A,L) ) ) ).
fof(a1_7,axiom,
! [A,N] :
( min_number_of_proposed_agents(A,N)
=> accept_number(A,N) ) ).
fof(a2_1,axiom,
! [A] :
( ( accept_population(A,atheist,n65)
& accept_population(A,christian,n20)
& accept_population(A,muslim,n7)
& accept_population(A,native,n4)
& accept_population(A,other,n4) )
<=> accept_city(A,suffertown) ) ).
fof(a2_2,axiom,
! [A] :
( ( accept_population(A,atheist,n54)
& accept_population(A,christian,n23)
& accept_population(A,muslim,n3)
& accept_population(A,native,n1)
& accept_population(A,other,n9) )
<=> accept_city(A,centraltown) ) ).
fof(a2_3,axiom,
! [A] :
( ( accept_population(A,atheist,n30)
& accept_population(A,christian,n8)
& accept_population(A,muslim,n60)
& accept_population(A,native,n1)
& accept_population(A,other,n1) )
<=> accept_city(A,sunnysideport) ) ).
fof(a2_4,axiom,
! [A] :
( ( accept_population(A,atheist,n70)
& accept_population(A,christian,n15)
& accept_population(A,muslim,n1)
& accept_population(A,native,n10)
& accept_population(A,other,n4) )
<=> accept_city(A,centrallakecity) ) ).
fof(a2_5,axiom,
! [A] :
( ( accept_population(A,atheist,n68)
& accept_population(A,christian,n16)
& accept_population(A,muslim,n1)
& accept_population(A,native,n11)
& accept_population(A,other,n4) )
<=> accept_city(A,stjosephburgh) ) ).
fof(a2_6,axiom,
! [A] :
( ( accept_population(A,atheist,n70)
& accept_population(A,christian,n13)
& accept_population(A,muslim,n0)
& accept_population(A,native,n15)
& accept_population(A,other,n2) )
<=> accept_city(A,northport) ) ).
fof(a2_7,axiom,
! [A] :
( ( accept_population(A,atheist,n12)
& accept_population(A,christian,n3)
& accept_population(A,muslim,n0)
& accept_population(A,native,n85)
& accept_population(A,other,n0) )
<=> accept_city(A,coastvillage) ) ).
fof(a2_8,axiom,
! [A] :
( ( accept_population(A,atheist,n0)
& accept_population(A,christian,n0)
& accept_population(A,muslim,n0)
& accept_population(A,native,n100)
& accept_population(A,other,n0) )
<=> accept_city(A,sunsetpoint) ) ).
fof(a2_9,axiom,
! [A] :
( ( accept_population(A,atheist,n75)
& accept_population(A,christian,n24)
& accept_population(A,muslim,n1)
& accept_population(A,native,n0)
& accept_population(A,other,n0) )
<=> accept_city(A,towna) ) ).
fof(a2_10,axiom,
! [A] :
( ( accept_population(A,atheist,n75)
& accept_population(A,christian,n25)
& accept_population(A,muslim,n0)
& accept_population(A,native,n0)
& accept_population(A,other,n0) )
<=> accept_city(A,citya) ) ).
fof(a2_11,axiom,
! [A] :
( ( accept_population(A,atheist,n70)
& accept_population(A,christian,n20)
& accept_population(A,muslim,n8)
& accept_population(A,native,n0)
& accept_population(A,other,n2) )
<=> accept_city(A,townb) ) ).
fof(a2_12,axiom,
! [A] :
( ( accept_population(A,atheist,n78)
& accept_population(A,christian,n20)
& accept_population(A,muslim,n1)
& accept_population(A,native,n0)
& accept_population(A,other,n1) )
<=> accept_city(A,cityb) ) ).
fof(a2_13,axiom,
! [A] :
( ( accept_population(A,atheist,n30)
& accept_population(A,christian,n0)
& accept_population(A,muslim,n65)
& accept_population(A,native,n0)
& accept_population(A,other,n5) )
<=> accept_city(A,townc) ) ).
%------------------------------------------------------------------------------
./AGT001+1.ax
Very long 774
./AGT001+2.ax
Very long 1128
Abstract Algebra
./ALG001-0.ax
%--------------------------------------------------------------------------
% File : ALG001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Algebra (Abstract)
% Axioms : Abstract algebra axioms, based on Godel set theory
% Version : [BL+86] axioms.
% English :
% Refs : [BL+86] Boyer et al. (1986), Set Theory in First-Order Logic:
% : [McC92] McCune (1992), Email to G. Sutcliffe
% Source : [McC92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 24 ( 0 unt; 7 nHn; 17 RR)
% Number of literals : 66 ( 12 equ; 35 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 0 prp; 2-4 aty)
% Number of functors : 11 ( 11 usr; 0 con; 2-4 aty)
% Number of variables : 74 ( 4 sgn)
% SPC :
% Comments : Requires SET003-0.ax
%--------------------------------------------------------------------------
%----Definition of associative system
cnf(associative_system1,axiom,
( ~ associative(Xs,Xf)
| ~ member(X,Xs)
| ~ member(Y,Xs)
| ~ member(Z,Xs)
| apply_to_two_arguments(Xf,apply_to_two_arguments(Xf,X,Y),Z) = apply_to_two_arguments(Xf,X,apply_to_two_arguments(Xf,Y,Z)) ) ).
cnf(associative_system2,axiom,
( associative(Xs,Xf)
| member(f34(Xs,Xf),Xs) ) ).
cnf(associative_system3,axiom,
( associative(Xs,Xf)
| member(f35(Xs,Xf),Xs) ) ).
cnf(associative_system4,axiom,
( associative(Xs,Xf)
| member(f36(Xs,Xf),Xs) ) ).
cnf(associative_system5,axiom,
( associative(Xs,Xf)
| apply_to_two_arguments(Xf,apply_to_two_arguments(Xf,f34(Xs,Xf),f35(Xs,Xf)),f36(Xs,Xf)) != apply_to_two_arguments(Xf,f34(Xs,Xf),apply_to_two_arguments(Xf,f35(Xs,Xf),f36(Xs,Xf))) ) ).
%----Definition of identity (left and right)
cnf(identity1,axiom,
( ~ identity(Xs,Xf,Xe)
| member(Xe,Xs) ) ).
cnf(identity2,axiom,
( ~ identity(Xs,Xf,Xe)
| ~ member(X,Xs)
| apply_to_two_arguments(Xf,Xe,X) = X ) ).
cnf(identity3,axiom,
( ~ identity(Xs,Xf,Xe)
| ~ member(X,Xs)
| apply_to_two_arguments(Xf,X,Xe) = X ) ).
cnf(identity4,axiom,
( identity(Xs,Xf,Xe)
| ~ member(Xe,Xs)
| member(f37(Xs,Xf,Xe),Xs) ) ).
cnf(identity5,axiom,
( identity(Xs,Xf,Xe)
| ~ member(Xe,Xs)
| apply_to_two_arguments(Xf,Xe,f37(Xs,Xf,Xe)) != f37(Xs,Xf,Xe)
| apply_to_two_arguments(Xf,f37(Xs,Xf,Xe),Xe) != f37(Xs,Xf,Xe) ) ).
%----Definition of inverse (left and right)
cnf(inverse1,axiom,
( ~ inverse(Xs,Xf,Xe,Xg)
| maps(Xg,Xs,Xs) ) ).
cnf(inverse2,axiom,
( ~ inverse(Xs,Xf,Xe,Xg)
| ~ member(X,Xs)
| apply_to_two_arguments(Xf,apply(Xg,X),X) = Xe ) ).
cnf(inverse3,axiom,
( ~ inverse(Xs,Xf,Xe,Xg)
| ~ member(X,Xs)
| apply_to_two_arguments(Xf,X,apply(Xg,X)) = Xe ) ).
cnf(inverse4,axiom,
( inverse(Xs,Xf,Xe,Xg)
| ~ maps(Xg,Xs,Xs)
| member(f38(Xs,Xf,Xe,Xg),Xs) ) ).
cnf(inverse5,axiom,
( inverse(Xs,Xf,Xe,Xg)
| ~ maps(Xg,Xs,Xs)
| apply_to_two_arguments(Xf,apply(Xg,f38(Xs,Xf,Xe,Xg)),f38(Xs,Xf,Xe,Xg)) != Xe
| apply_to_two_arguments(Xf,f38(Xs,Xf,Xe,Xg),apply(Xg,f38(Xs,Xf,Xe,Xg))) != Xe ) ).
%----Definition of group
cnf(group1,axiom,
( ~ group(Xs,Xf)
| closed(Xs,Xf) ) ).
cnf(group2,axiom,
( ~ group(Xs,Xf)
| associative(Xs,Xf) ) ).
cnf(group3,axiom,
( ~ group(Xs,Xf)
| identity(Xs,Xf,f39(Xs,Xf)) ) ).
cnf(group4,axiom,
( ~ group(Xs,Xf)
| inverse(Xs,Xf,f39(Xs,Xf),f40(Xs,Xf)) ) ).
cnf(group5,axiom,
( group(Xs,Xf)
| ~ closed(Xs,Xf)
| ~ associative(Xs,Xf)
| ~ identity(Xs,Xf,Xe)
| ~ inverse(Xs,Xf,Xe,Xg) ) ).
%----Definition of commutative system
cnf(commutes1,axiom,
( ~ commutes(Xs,Xf)
| ~ member(X,Xs)
| ~ member(Y,Xs)
| apply_to_two_arguments(Xf,X,Y) = apply_to_two_arguments(Xf,Y,X) ) ).
cnf(commutes2,axiom,
( commutes(Xs,Xf)
| member(f41(Xs,Xf),Xs) ) ).
cnf(commutes3,axiom,
( commutes(Xs,Xf)
| member(f42(Xs,Xf),Xs) ) ).
cnf(commutes4,axiom,
( commutes(Xs,Xf)
| apply_to_two_arguments(Xf,f41(Xs,Xf),f42(Xs,Xf)) != apply_to_two_arguments(Xf,f42(Xs,Xf),f41(Xs,Xf)) ) ).
%--------------------------------------------------------------------------
./ALG002+0.ax
%------------------------------------------------------------------------------
% File : ALG002+0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Algebra (Median)
% Axioms : Median algebra axioms
% Version : [VM05] axioms.
% English :
% Refs : [VMURL] Veroff & McCune (URL), First-order Proof of a Median A
% Source : [VMURL]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 4 unt; 0 def)
% Number of atoms : 4 ( 4 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 12 ( 12 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(majority,axiom,
! [X,Y] : f(X,X,Y) = X ).
fof(permute1,axiom,
! [X,Y,Z] : f(X,Y,Z) = f(Z,X,Y) ).
fof(permute2,axiom,
! [X,Y,Z] : f(X,Y,Z) = f(X,Z,Y) ).
fof(associativity,axiom,
! [W,X,Y,Z] : f(f(X,W,Y),W,Z) = f(X,W,f(Y,W,Z)) ).
%------------------------------------------------------------------------------
./ALG002-0.ax
%------------------------------------------------------------------------------
% File : ALG002-0 : TPTP v8.2.0. Released v8.0.0.
% Domain : Algebra (Median)
% Axioms : Median algebra axioms
% Version : [VM05] axioms.
% English :
% Refs : [VMURL] Veroff & McCune (URL), First-order Proof of a Median A
% Source : [VMURL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 4 unt; 0 nHn; 0 RR)
% Number of literals : 4 ( 4 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 12 ( 1 sgn)
% SPC :
% Comments : UEQ format.
%------------------------------------------------------------------------------
cnf(majority,axiom,
f(X,X,Y) = X ).
cnf(permute1,axiom,
f(X,Y,Z) = f(Z,X,Y) ).
cnf(permute2,axiom,
f(X,Y,Z) = f(X,Z,Y) ).
cnf(associativity,axiom,
f(f(X,W,Y),W,Z) = f(X,W,f(Y,W,Z)) ).
%------------------------------------------------------------------------------
./ALG003^0.ax
Very long 2093
Analysis
./ANA001-0.ax
%--------------------------------------------------------------------------
% File : ANA001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Analysis (Limits)
% Axioms : Analysis (limits) axioms for continuous functions
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 14 ( 6 unt; 0 nHn; 9 RR)
% Number of literals : 27 ( 5 equ; 14 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 6 ( 6 usr; 1 con; 0-2 aty)
% Number of variables : 27 ( 0 sgn)
% SPC :
% Comments : No natural language descriptions are available.
% : "Contributed by W.W. Bledsoe in a private correspondence",
% [MOW76].
%--------------------------------------------------------------------------
%----Axiom 1
cnf(right_identity,axiom,
add(X,n0) = X ).
cnf(left_identity,axiom,
add(n0,X) = X ).
cnf(reflexivity_of_less_than,axiom,
~ less_than(X,X) ).
%----Less than transitivity
cnf(transitivity_of_less_than,axiom,
( ~ less_than(X,Y)
| ~ less_than(Y,Z)
| less_than(X,Z) ) ).
%----Axiom 2
cnf(axiom_2_1,axiom,
( ~ less_than(n0,X)
| ~ less_than(n0,Y)
| less_than(n0,minimum(X,Y)) ) ).
cnf(axiom_2_2,axiom,
( ~ less_than(n0,X)
| ~ less_than(n0,Y)
| less_than(minimum(X,Y),X) ) ).
cnf(axiom_2_3,axiom,
( ~ less_than(n0,X)
| ~ less_than(n0,Y)
| less_than(minimum(X,Y),Y) ) ).
%----Axiom 3
cnf(axiom_3,axiom,
( ~ less_than(X,half(Xa))
| ~ less_than(Y,half(Xa))
| less_than(add(X,Y),Xa) ) ).
%----Axiom 4
cnf(c_17,axiom,
( ~ less_than(add(absolute(X),absolute(Y)),Xa)
| less_than(absolute(add(X,Y)),Xa) ) ).
%----Axiom 5
cnf(axiom_5,axiom,
add(add(X,Y),Z) = add(X,add(Y,Z)) ).
%----Axiom 6
cnf(axiom_6_1,axiom,
add(X,Y) = add(Y,X) ).
cnf(axiom_6_2,axiom,
( ~ less_than(n0,Xa)
| less_than(n0,half(Xa)) ) ).
%----Axiom 7
cnf(axiom_7,axiom,
( ~ less_than(n0,Xa)
| less_than(n0,half(Xa)) ) ).
%----Axiom 8
cnf(axiom_8,axiom,
minus(add(X,Y)) = add(minus(X),minus(Y)) ).
%--------------------------------------------------------------------------
./ANA002-0.ax
%--------------------------------------------------------------------------
% File : ANA002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Analysis (Limits)
% Axioms : Analysis (limits) axioms for continuous functions
% Version : [Ble90] axioms.
% English :
% Refs : [Ble90] Bledsoe (1990), Challenge Problems in Elementary Calcu
% : [Ble92] Bledsoe (1992), Email to G. Sutcliffe
% Source : [Ble92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 26 ( 11 unt; 2 nHn; 13 RR)
% Number of literals : 45 ( 6 equ; 17 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 1 con; 0-2 aty)
% Number of variables : 59 ( 4 sgn)
% SPC :
% Comments : Based on the theorem in calculus that the sum of two continuous
% functions is continuous.
% : Used some ideas from [SETHEO] to format this.
%--------------------------------------------------------------------------
%----|X + Y| <= |X| + |Y|.
%----Clause 8
cnf(absolute_sum_less_or_equal_sum_of_absolutes1,axiom,
less_or_equal(absolute(add(X,Y)),add(absolute(X),absolute(Y))) ).
%----Clause 8.1
cnf(absolute_sum_less_or_equal_sum_of_absolutes2,axiom,
( ~ less_or_equal(add(absolute(X),absolute(Y)),Z)
| less_or_equal(absolute(add(X,Y)),Z) ) ).
%----Properties of minimum.
%----Clause 9
cnf(minimum1,axiom,
( ~ less_or_equal(X,Y)
| minimum(X,Y) = X ) ).
%----Clause 9.1
cnf(minimum2,axiom,
less_or_equal(minimum(X,Y),X) ).
%----Clause 9.11
cnf(minimum3,axiom,
( ~ less_or_equal(Z,minimum(X,Y))
| less_or_equal(Z,X) ) ).
%----Clause 9.2
cnf(minimum4,axiom,
( ~ less_or_equal(X,Y)
| less_or_equal(X,minimum(X,Y)) ) ).
%----Clause 10
cnf(minimum5,axiom,
( ~ less_or_equal(Y,X)
| minimum(X,Y) = Y ) ).
%----Clause 10.1
cnf(minimum6,axiom,
less_or_equal(minimum(X,Y),Y) ).
%----Clause 10.11
cnf(minimum7,axiom,
( ~ less_or_equal(Z,minimum(X,Y))
| less_or_equal(Z,Y) ) ).
%----Clause 10.2
cnf(minimum8,axiom,
( ~ less_or_equal(Y,X)
| less_or_equal(Y,minimum(X,Y)) ) ).
%----Clause 10.3
cnf(minimum9,axiom,
( less_or_equal(X,n0)
| less_or_equal(Y,n0)
| ~ less_or_equal(minimum(X,Y),n0) ) ).
%----Properties of half.
%----Clause 11
cnf(half_plus_half_is_whole,axiom,
add(half(X),half(X)) = X ).
%----Clause 11.1
cnf(half_plus_half_less_or_equal_whole,axiom,
less_or_equal(add(half(X),half(X)),X) ).
%----Clause 11.2
cnf(whole_less_or_equal_half_plus_half,axiom,
less_or_equal(X,add(half(X),half(X))) ).
%----Clause 11.3
cnf(less_or_equal_sum_of_halves,axiom,
( ~ less_or_equal(X,half(Z))
| ~ less_or_equal(Y,half(Z))
| less_or_equal(add(X,Y),Z) ) ).
%----Clause 12
cnf(zero_and_half,axiom,
( less_or_equal(X,n0)
| ~ less_or_equal(half(X),n0) ) ).
%----Properties of add.
%----Clause 13
cnf(add_to_both_sides_of_less_equal1,axiom,
( ~ less_or_equal(X,Y)
| less_or_equal(add(X,Z),add(Y,Z)) ) ).
%----Clause 13.1
cnf(add_to_both_sides_of_less_equal2,axiom,
( ~ less_or_equal(X,Y)
| ~ less_or_equal(Z,W)
| less_or_equal(add(X,Z),add(Y,W)) ) ).
%----Clause 14
cnf(commutativity_of_less_or_equal,axiom,
( less_or_equal(X,Y)
| less_or_equal(Y,X) ) ).
%----Clause 15
cnf(transitivity_of_less_or_equal,axiom,
( ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,Z)
| less_or_equal(X,Z) ) ).
%----Clause 15.1 omitted - it's the same as Clause 15
%----Clause 16
cnf(commutativity_of_add,axiom,
add(X,Y) = add(Y,X) ).
%----Clause 16_1
cnf(commutativity_of_add_for_less_or_equal,axiom,
less_or_equal(add(X,Y),add(Y,X)) ).
%----Clause 17
cnf(associativity_of_add,axiom,
add(add(X,Y),Z) = add(X,add(Y,Z)) ).
%----Clause 17_1
cnf(associativity_of_add_for_less_or_equal1,axiom,
less_or_equal(add(add(X,Y),Z),add(X,add(Y,Z))) ).
%----Clause 17_2
cnf(associativity_of_add_for_less_or_equal2,axiom,
less_or_equal(add(X,add(Y,Z)),add(add(X,Y),Z)) ).
%----Clause 18
cnf(equal_implies_less_or_equal,axiom,
( X != Y
| less_or_equal(X,Y) ) ).
%--------------------------------------------------------------------------
./ANA003-0.ax
%------------------------------------------------------------------------------
% File : ANA003-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Analysis
% Axioms : A theory of Big-O notation
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : BigO_simp.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 53 ( 0 unt; 0 nHn; 15 RR)
% Number of literals : 122 ( 0 equ; 69 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 32 ( 32 usr; 0 prp; 1-3 aty)
% Number of functors : 6 ( 6 usr; 0 con; 1-3 aty)
% Number of variables : 123 ( 30 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax
%------------------------------------------------------------------------------
cnf(cls_SetsAndFunctions_Oset__plus__intro2_0,axiom,
( ~ class_HOL_Oplus(T_a)
| ~ c_in(V_b,V_C,T_a)
| c_in(c_plus(V_a,V_b,T_a),c_SetsAndFunctions_Oelt__set__plus(V_a,V_C,T_a),T_a) ) ).
cnf(cls_SetsAndFunctions_Oset__plus__intro_0,axiom,
( ~ class_HOL_Oplus(T_a)
| ~ c_in(V_b,V_D,T_a)
| ~ c_in(V_a,V_C,T_a)
| c_in(c_plus(V_a,V_b,T_a),c_plus(V_C,V_D,tc_set(T_a)),T_a) ) ).
cnf(cls_SetsAndFunctions_Oset__plus__mono2_0,axiom,
( ~ class_HOL_Oplus(T_a)
| ~ c_lessequals(V_E,V_F,tc_set(T_a))
| ~ c_lessequals(V_C,V_D,tc_set(T_a))
| c_lessequals(c_plus(V_C,V_E,tc_set(T_a)),c_plus(V_D,V_F,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__plus__mono3_0,axiom,
( ~ class_HOL_Oplus(T_a)
| ~ c_in(V_a,V_C,T_a)
| c_lessequals(c_SetsAndFunctions_Oelt__set__plus(V_a,V_D,T_a),c_plus(V_C,V_D,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__plus__mono4_0,axiom,
( ~ class_OrderedGroup_Ocomm__monoid__add(T_a)
| ~ c_in(V_a,V_C,T_a)
| c_lessequals(c_SetsAndFunctions_Oelt__set__plus(V_a,V_D,T_a),c_plus(V_D,V_C,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__plus__mono_0,axiom,
( ~ class_HOL_Oplus(T_a)
| ~ c_lessequals(V_C,V_D,tc_set(T_a))
| c_lessequals(c_SetsAndFunctions_Oelt__set__plus(V_a,V_C,T_a),c_SetsAndFunctions_Oelt__set__plus(V_a,V_D,T_a),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__times__intro2_0,axiom,
( ~ class_HOL_Otimes(T_a)
| ~ c_in(V_b,V_C,T_a)
| c_in(c_times(V_a,V_b,T_a),c_SetsAndFunctions_Oelt__set__times(V_a,V_C,T_a),T_a) ) ).
cnf(cls_SetsAndFunctions_Oset__times__intro_0,axiom,
( ~ class_HOL_Otimes(T_a)
| ~ c_in(V_b,V_D,T_a)
| ~ c_in(V_a,V_C,T_a)
| c_in(c_times(V_a,V_b,T_a),c_times(V_C,V_D,tc_set(T_a)),T_a) ) ).
cnf(cls_SetsAndFunctions_Oset__times__mono2_0,axiom,
( ~ class_HOL_Otimes(T_a)
| ~ c_lessequals(V_E,V_F,tc_set(T_a))
| ~ c_lessequals(V_C,V_D,tc_set(T_a))
| c_lessequals(c_times(V_C,V_E,tc_set(T_a)),c_times(V_D,V_F,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__times__mono3_0,axiom,
( ~ class_HOL_Otimes(T_a)
| ~ c_in(V_a,V_C,T_a)
| c_lessequals(c_SetsAndFunctions_Oelt__set__times(V_a,V_D,T_a),c_times(V_C,V_D,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__times__mono4_0,axiom,
( ~ class_OrderedGroup_Ocomm__monoid__mult(T_a)
| ~ c_in(V_a,V_C,T_a)
| c_lessequals(c_SetsAndFunctions_Oelt__set__times(V_a,V_D,T_a),c_times(V_D,V_C,tc_set(T_a)),tc_set(T_a)) ) ).
cnf(cls_SetsAndFunctions_Oset__times__mono_0,axiom,
( ~ class_HOL_Otimes(T_a)
| ~ c_lessequals(V_C,V_D,tc_set(T_a))
| c_lessequals(c_SetsAndFunctions_Oelt__set__times(V_a,V_C,T_a),c_SetsAndFunctions_Oelt__set__times(V_a,V_D,T_a),tc_set(T_a)) ) ).
cnf(clsarity_fun_10,axiom,
( class_OrderedGroup_Ocancel__semigroup__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Oab__group__add(T_1) ) ).
cnf(clsarity_fun_11,axiom,
( class_OrderedGroup_Ocancel__ab__semigroup__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Oab__group__add(T_1) ) ).
cnf(clsarity_fun_12,axiom,
( class_OrderedGroup_Oab__group__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Oab__group__add(T_1) ) ).
cnf(clsarity_fun_13,axiom,
( class_OrderedGroup_Osemigroup__mult(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Osemigroup__mult(T_1) ) ).
cnf(clsarity_fun_14,axiom,
( class_OrderedGroup_Oab__semigroup__mult(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_fun_15,axiom,
( class_OrderedGroup_Omonoid__mult(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_fun_16,axiom,
( class_OrderedGroup_Ocomm__monoid__mult(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_fun_17,axiom,
( class_Ring__and__Field_Osemiring(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_18,axiom,
( class_Ring__and__Field_Ocomm__semiring(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_19,axiom,
( class_Ring__and__Field_Osemiring__0(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_2,axiom,
( class_HOL_Oplus(tc_fun(T_2,T_1))
| ~ class_HOL_Oplus(T_1) ) ).
cnf(clsarity_fun_20,axiom,
( class_Ring__and__Field_Ocomm__semiring__0(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_21,axiom,
( class_Ring__and__Field_Osemiring__0__cancel(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_22,axiom,
( class_Ring__and__Field_Oring(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_23,axiom,
( class_Ring__and__Field_Ocomm__semiring__0__cancel(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_24,axiom,
( class_Ring__and__Field_Ocomm__ring(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_25,axiom,
( class_Ring__and__Field_Oaxclass__0__neq__1(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_26,axiom,
( class_Ring__and__Field_Osemiring__1(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_27,axiom,
( class_Ring__and__Field_Ocomm__semiring__1(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_28,axiom,
( class_Ring__and__Field_Osemiring__1__cancel(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_29,axiom,
( class_Ring__and__Field_Oring__1(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_3,axiom,
( class_HOL_Otimes(tc_fun(T_2,T_1))
| ~ class_HOL_Otimes(T_1) ) ).
cnf(clsarity_fun_30,axiom,
( class_Ring__and__Field_Ocomm__semiring__1__cancel(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_31,axiom,
( class_Ring__and__Field_Ocomm__ring__1(tc_fun(T_2,T_1))
| ~ class_Ring__and__Field_Ocomm__ring__1(T_1) ) ).
cnf(clsarity_fun_4,axiom,
( class_HOL_Ominus(tc_fun(T_2,T_1))
| ~ class_HOL_Ominus(T_1) ) ).
cnf(clsarity_fun_5,axiom,
( class_HOL_Ozero(tc_fun(T_2,T_1))
| ~ class_HOL_Ozero(T_1) ) ).
cnf(clsarity_fun_6,axiom,
( class_HOL_Oone(tc_fun(T_2,T_1))
| ~ class_HOL_Oone(T_1) ) ).
cnf(clsarity_fun_7,axiom,
( class_OrderedGroup_Osemigroup__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Osemigroup__add(T_1) ) ).
cnf(clsarity_fun_8,axiom,
( class_OrderedGroup_Oab__semigroup__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Ocomm__monoid__add(T_1) ) ).
cnf(clsarity_fun_9,axiom,
( class_OrderedGroup_Ocomm__monoid__add(tc_fun(T_2,T_1))
| ~ class_OrderedGroup_Ocomm__monoid__add(T_1) ) ).
cnf(clsarity_set_10,axiom,
( class_OrderedGroup_Osemigroup__mult(tc_set(T_1))
| ~ class_OrderedGroup_Osemigroup__mult(T_1) ) ).
cnf(clsarity_set_11,axiom,
( class_OrderedGroup_Oab__semigroup__add(tc_set(T_1))
| ~ class_OrderedGroup_Ocomm__monoid__add(T_1) ) ).
cnf(clsarity_set_12,axiom,
( class_OrderedGroup_Ocomm__monoid__add(tc_set(T_1))
| ~ class_OrderedGroup_Ocomm__monoid__add(T_1) ) ).
cnf(clsarity_set_13,axiom,
( class_OrderedGroup_Oab__semigroup__mult(tc_set(T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_set_14,axiom,
( class_OrderedGroup_Omonoid__mult(tc_set(T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_set_15,axiom,
( class_OrderedGroup_Ocomm__monoid__mult(tc_set(T_1))
| ~ class_OrderedGroup_Ocomm__monoid__mult(T_1) ) ).
cnf(clsarity_set_5,axiom,
( class_HOL_Oplus(tc_set(T_1))
| ~ class_HOL_Oplus(T_1) ) ).
cnf(clsarity_set_6,axiom,
( class_HOL_Otimes(tc_set(T_1))
| ~ class_HOL_Otimes(T_1) ) ).
cnf(clsarity_set_7,axiom,
( class_HOL_Ozero(tc_set(T_1))
| ~ class_HOL_Ozero(T_1) ) ).
cnf(clsarity_set_8,axiom,
( class_HOL_Oone(tc_set(T_1))
| ~ class_HOL_Oone(T_1) ) ).
cnf(clsarity_set_9,axiom,
( class_OrderedGroup_Osemigroup__add(tc_set(T_1))
| ~ class_OrderedGroup_Osemigroup__add(T_1) ) ).
%------------------------------------------------------------------------------
./BIO001+0.ax
Very long 400988
./BOO001-0.ax
%--------------------------------------------------------------------------
% File : BOO001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Algebra (Ternary Boolean)
% Axioms : Ternary Boolean algebra (equality) axioms
% Version : [OTTER] (equality) axioms.
% English :
% Refs : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [Win82] Winker (1982), Generation and Verification of Finite M
% Source : [OTTER]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 5 ( 5 unt; 0 nHn; 0 RR)
% Number of literals : 5 ( 5 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 1-3 aty)
% Number of variables : 13 ( 2 sgn)
% SPC :
% Comments : These axioms appear in [Win82], in which ternary_multiply_1 is
% shown to be independant.
% : These axioms are also used in [Wos88], p.222.
%--------------------------------------------------------------------------
cnf(associativity,axiom,
multiply(multiply(V,W,X),Y,multiply(V,W,Z)) = multiply(V,W,multiply(X,Y,Z)) ).
cnf(ternary_multiply_1,axiom,
multiply(Y,X,X) = X ).
cnf(ternary_multiply_2,axiom,
multiply(X,X,Y) = X ).
cnf(left_inverse,axiom,
multiply(inverse(Y),Y,X) = X ).
cnf(right_inverse,axiom,
multiply(X,Y,inverse(Y)) = X ).
%--------------------------------------------------------------------------
./BOO002-0.ax
%--------------------------------------------------------------------------
% File : BOO002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Boolean Algebra
% Axioms : Boolean algebra axioms
% Version : [MOW76] axioms.
% English :
% Refs : [Whi61] Whitesitt (1961), Boolean Algebra and Its Applications
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 22 ( 10 unt; 0 nHn; 12 RR)
% Number of literals : 60 ( 2 equ; 38 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 82 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(closure_of_addition,axiom,
sum(X,Y,add(X,Y)) ).
cnf(closure_of_multiplication,axiom,
product(X,Y,multiply(X,Y)) ).
cnf(commutativity_of_addition,axiom,
( ~ sum(X,Y,Z)
| sum(Y,X,Z) ) ).
cnf(commutativity_of_multiplication,axiom,
( ~ product(X,Y,Z)
| product(Y,X,Z) ) ).
cnf(additive_identity1,axiom,
sum(additive_identity,X,X) ).
cnf(additive_identity2,axiom,
sum(X,additive_identity,X) ).
cnf(multiplicative_identity1,axiom,
product(multiplicative_identity,X,X) ).
cnf(multiplicative_identity2,axiom,
product(X,multiplicative_identity,X) ).
cnf(distributivity1,axiom,
( ~ product(X,Y,V1)
| ~ product(X,Z,V2)
| ~ sum(Y,Z,V3)
| ~ product(X,V3,V4)
| sum(V1,V2,V4) ) ).
cnf(distributivity2,axiom,
( ~ product(X,Y,V1)
| ~ product(X,Z,V2)
| ~ sum(Y,Z,V3)
| ~ sum(V1,V2,V4)
| product(X,V3,V4) ) ).
cnf(distributivity3,axiom,
( ~ product(Y,X,V1)
| ~ product(Z,X,V2)
| ~ sum(Y,Z,V3)
| ~ product(V3,X,V4)
| sum(V1,V2,V4) ) ).
cnf(distributivity4,axiom,
( ~ product(Y,X,V1)
| ~ product(Z,X,V2)
| ~ sum(Y,Z,V3)
| ~ sum(V1,V2,V4)
| product(V3,X,V4) ) ).
cnf(distributivity5,axiom,
( ~ sum(X,Y,V1)
| ~ sum(X,Z,V2)
| ~ product(Y,Z,V3)
| ~ sum(X,V3,V4)
| product(V1,V2,V4) ) ).
cnf(distributivity6,axiom,
( ~ sum(X,Y,V1)
| ~ sum(X,Z,V2)
| ~ product(Y,Z,V3)
| ~ product(V1,V2,V4)
| sum(X,V3,V4) ) ).
cnf(distributivity7,axiom,
( ~ sum(Y,X,V1)
| ~ sum(Z,X,V2)
| ~ product(Y,Z,V3)
| ~ sum(V3,X,V4)
| product(V1,V2,V4) ) ).
cnf(distributivity8,axiom,
( ~ sum(Y,X,V1)
| ~ sum(Z,X,V2)
| ~ product(Y,Z,V3)
| ~ product(V1,V2,V4)
| sum(V3,X,V4) ) ).
cnf(additive_inverse1,axiom,
sum(inverse(X),X,multiplicative_identity) ).
cnf(additive_inverse2,axiom,
sum(X,inverse(X),multiplicative_identity) ).
cnf(multiplicative_inverse1,axiom,
product(inverse(X),X,additive_identity) ).
cnf(multiplicative_inverse2,axiom,
product(X,inverse(X),additive_identity) ).
%-----Well definedness of the operations
cnf(addition_is_well_defined,axiom,
( ~ sum(X,Y,U)
| ~ sum(X,Y,V)
| U = V ) ).
cnf(multiplication_is_well_defined,axiom,
( ~ product(X,Y,U)
| ~ product(X,Y,V)
| U = V ) ).
%--------------------------------------------------------------------------
./BOO003-0.ax
%--------------------------------------------------------------------------
% File : BOO003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Boolean Algebra
% Axioms : Boolean algebra (equality) axioms
% Version : [ANL] (equality) axioms.
% English :
% Refs :
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 14 ( 14 unt; 0 nHn; 0 RR)
% Number of literals : 14 ( 14 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 24 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(commutativity_of_add,axiom,
add(X,Y) = add(Y,X) ).
cnf(commutativity_of_multiply,axiom,
multiply(X,Y) = multiply(Y,X) ).
cnf(distributivity1,axiom,
add(multiply(X,Y),Z) = multiply(add(X,Z),add(Y,Z)) ).
cnf(distributivity2,axiom,
add(X,multiply(Y,Z)) = multiply(add(X,Y),add(X,Z)) ).
cnf(distributivity3,axiom,
multiply(add(X,Y),Z) = add(multiply(X,Z),multiply(Y,Z)) ).
cnf(distributivity4,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(additive_inverse1,axiom,
add(X,inverse(X)) = multiplicative_identity ).
cnf(additive_inverse2,axiom,
add(inverse(X),X) = multiplicative_identity ).
cnf(multiplicative_inverse1,axiom,
multiply(X,inverse(X)) = additive_identity ).
cnf(multiplicative_inverse2,axiom,
multiply(inverse(X),X) = additive_identity ).
cnf(multiplicative_id1,axiom,
multiply(X,multiplicative_identity) = X ).
cnf(multiplicative_id2,axiom,
multiply(multiplicative_identity,X) = X ).
cnf(additive_id1,axiom,
add(X,additive_identity) = X ).
cnf(additive_id2,axiom,
add(additive_identity,X) = X ).
%--------------------------------------------------------------------------
./BOO004-0.ax
%--------------------------------------------------------------------------
% File : BOO004-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Boolean Algebra
% Axioms : Boolean algebra (equality) axioms
% Version : [Ver94] (equality) axioms.
% English :
% Refs : [Ver94] Veroff (1994), Problem Set
% Source : [Ver94]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 8 unt; 0 nHn; 0 RR)
% Number of literals : 8 ( 8 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 14 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(commutativity_of_add,axiom,
add(X,Y) = add(Y,X) ).
cnf(commutativity_of_multiply,axiom,
multiply(X,Y) = multiply(Y,X) ).
cnf(distributivity1,axiom,
add(X,multiply(Y,Z)) = multiply(add(X,Y),add(X,Z)) ).
cnf(distributivity2,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(additive_id1,axiom,
add(X,additive_identity) = X ).
cnf(multiplicative_id1,axiom,
multiply(X,multiplicative_identity) = X ).
cnf(additive_inverse1,axiom,
add(X,inverse(X)) = multiplicative_identity ).
cnf(multiplicative_inverse1,axiom,
multiply(X,inverse(X)) = additive_identity ).
%--------------------------------------------------------------------------
Category Theory
./CAT001-0.ax
%--------------------------------------------------------------------------
% File : CAT001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Category theory
% Axioms : Category theory axioms
% Version : [Mit67] axioms.
% English :
% Refs : [Mit67] Mitchell (1967), Theory of Categories
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 18 ( 6 unt; 0 nHn; 12 RR)
% Number of literals : 45 ( 1 equ; 27 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 3 usr; 0 prp; 1-3 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 52 ( 5 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Notice that composition is read as compose(x,y)(G) means x o y, -i.e.
%----x(y(G)). It is a skolem function from -(all x all
%----y, (DEF(x,y) -> exists z (P(x,y,z)))).
%-----Composition is closed when defined
cnf(closure_of_composition,axiom,
( ~ defined(X,Y)
| product(X,Y,compose(X,Y)) ) ).
%-----Associative property
cnf(associative_property1,axiom,
( ~ product(X,Y,Z)
| defined(X,Y) ) ).
cnf(associative_property2,axiom,
( ~ product(X,Y,Xy)
| ~ defined(Xy,Z)
| defined(Y,Z) ) ).
%-----Special category theory axiom
cnf(category_theory_axiom1,axiom,
( ~ product(X,Y,Xy)
| ~ product(Y,Z,Yz)
| ~ defined(Xy,Z)
| defined(X,Yz) ) ).
cnf(category_theory_axiom2,axiom,
( ~ product(X,Y,Xy)
| ~ product(Xy,Z,Xyz)
| ~ product(Y,Z,Yz)
| product(X,Yz,Xyz) ) ).
cnf(category_theory_axiom3,axiom,
( ~ product(Y,Z,Yz)
| ~ defined(X,Yz)
| defined(X,Y) ) ).
cnf(category_theory_axiom4,axiom,
( ~ product(Y,Z,Yz)
| ~ product(X,Y,Xy)
| ~ defined(X,Yz)
| defined(Xy,Z) ) ).
cnf(category_theory_axiom5,axiom,
( ~ product(Y,Z,Yz)
| ~ product(X,Yz,Xyz)
| ~ product(X,Y,Xy)
| product(Xy,Z,Xyz) ) ).
cnf(category_theory_axiom6,axiom,
( ~ defined(X,Y)
| ~ defined(Y,Z)
| ~ identity_map(Y)
| defined(X,Z) ) ).
%-----Properties of domain(x) and codomain(x)
cnf(domain_is_an_identity_map,axiom,
identity_map(domain(X)) ).
cnf(codomain_is_an_identity_map,axiom,
identity_map(codomain(X)) ).
cnf(mapping_from_x_to_its_domain,axiom,
defined(X,domain(X)) ).
cnf(mapping_from_codomain_of_x_to_x,axiom,
defined(codomain(X),X) ).
cnf(product_on_domain,axiom,
product(X,domain(X),X) ).
cnf(product_on_codomain,axiom,
product(codomain(X),X,X) ).
%-----Definition of the identity predicate
cnf(identity1,axiom,
( ~ defined(X,Y)
| ~ identity_map(X)
| product(X,Y,Y) ) ).
cnf(identity2,axiom,
( ~ defined(X,Y)
| ~ identity_map(Y)
| product(X,Y,X) ) ).
%-----Composition is well defined
cnf(composition_is_well_defined,axiom,
( ~ product(X,Y,Z)
| ~ product(X,Y,W)
| Z = W ) ).
%--------------------------------------------------------------------------
./CAT002-0.ax
%--------------------------------------------------------------------------
% File : CAT002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Category theory
% Axioms : Category theory (equality) axioms
% Version : [Qua89] (equality) axioms.
% English :
% Refs : [Qua89] Quaife (1989), Email to L. Wos
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 7 ( 4 unt; 0 nHn; 3 RR)
% Number of literals : 11 ( 11 equ; 4 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 11 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Composition is read right-to-left: compose(x,y)(G) means -y(x(G)) The
%----axioms themselves
cnf(codomain_of_domain_is_domain,axiom,
codomain(domain(X)) = domain(X) ).
cnf(domain_of_codomain_is_codomain,axiom,
domain(codomain(X)) = codomain(X) ).
cnf(domain_composition,axiom,
compose(domain(X),X) = X ).
cnf(codomain_composition,axiom,
compose(X,codomain(X)) = X ).
cnf(codomain_domain1,axiom,
( codomain(X) != domain(Y)
| domain(compose(X,Y)) = domain(X) ) ).
cnf(codomain_domain2,axiom,
( codomain(X) != domain(Y)
| codomain(compose(X,Y)) = codomain(Y) ) ).
cnf(star_property,axiom,
( codomain(X) != domain(Y)
| codomain(Y) != domain(Z)
| compose(X,compose(Y,Z)) = compose(compose(X,Y),Z) ) ).
%--------------------------------------------------------------------------
./CAT003-0.ax
%--------------------------------------------------------------------------
% File : CAT003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Category Theory
% Axioms : Category theory axioms
% Version : [Sco79] axioms : Reduced > Complete.
% English :
% Refs : [Sco79] Scott (1979), Identity and Existence in Intuitionist L
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 17 ( 3 unt; 2 nHn; 12 RR)
% Number of literals : 37 ( 15 equ; 17 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 1-2 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 31 ( 4 sgn)
% SPC :
% Comments : Axioms simplified by Art Quaife.
%--------------------------------------------------------------------------
%----Non-standard in that E(x) stands for "x exists", i.e. a system for
%----intuitionistic logic. Viewed classically, this can be taken
%----as a partitioning of models M into elements of E and other elements
%----of M; then Scott's quantifiers are relativized to range only over
%----E, whereas free variables range over all of M.
%----Quaife has this written: (this looks really weird, but results from
%----having = here stand for equivalence, and it is a strange fact from
%----Scott's conception that all non-existent things are equivalent. all
%----x all y ((x == y) | E(x) | E(y))).
%-----Restricted equality axioms
cnf(equivalence_implies_existence1,axiom,
( ~ equivalent(X,Y)
| there_exists(X) ) ).
cnf(equivalence_implies_existence2,axiom,
( ~ equivalent(X,Y)
| X = Y ) ).
cnf(existence_and_equality_implies_equivalence1,axiom,
( ~ there_exists(X)
| X != Y
| equivalent(X,Y) ) ).
%-----Category theory axioms
cnf(domain_has_elements,axiom,
( ~ there_exists(domain(X))
| there_exists(X) ) ).
cnf(codomain_has_elements,axiom,
( ~ there_exists(codomain(X))
| there_exists(X) ) ).
cnf(composition_implies_domain,axiom,
( ~ there_exists(compose(X,Y))
| there_exists(domain(X)) ) ).
cnf(domain_codomain_composition1,axiom,
( ~ there_exists(compose(X,Y))
| domain(X) = codomain(Y) ) ).
cnf(domain_codomain_composition2,axiom,
( ~ there_exists(domain(X))
| domain(X) != codomain(Y)
| there_exists(compose(X,Y)) ) ).
cnf(associativity_of_compose,axiom,
compose(X,compose(Y,Z)) = compose(compose(X,Y),Z) ).
cnf(compose_domain,axiom,
compose(X,domain(X)) = X ).
cnf(compose_codomain,axiom,
compose(codomain(X),X) = X ).
%-----Axioms from Scott proven dependant by Quaife (with OTTER)
%-----Restricted equality axioms
cnf(equivalence_implies_existence3,axiom,
( ~ equivalent(X,Y)
| there_exists(Y) ) ).
cnf(existence_and_equality_implies_equivalence2,axiom,
( ~ there_exists(X)
| ~ there_exists(Y)
| X != Y
| equivalent(X,Y) ) ).
%-----Category theory axioms
cnf(composition_implies_codomain,axiom,
( ~ there_exists(compose(X,Y))
| there_exists(codomain(X)) ) ).
%-----Axiom of indiscernibles
cnf(indiscernibles1,axiom,
( there_exists(f1(X,Y))
| X = Y ) ).
cnf(indiscernibles2,axiom,
( X = f1(X,Y)
| Y = f1(X,Y)
| X = Y ) ).
cnf(indiscernibles3,axiom,
( X != f1(X,Y)
| Y != f1(X,Y)
| X = Y ) ).
%----definition of functor: morphisms of categories; i.e. functions -that
%----are strict : E(f(x)) -> E(x).
%----- total : E(x) -> E(f(x)).
%----- preserving: f(dom(x)) = dom(f(x)).
%----- f(cod(x)) = cod(f(x)).
%----- E(star(x,y)) -> (f(star(x,y)) = star(f(x),f(y))).
%--------------------------------------------------------------------------
./CAT004-0.ax
%--------------------------------------------------------------------------
% File : CAT004-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Category Theory
% Axioms : Category theory axioms
% Version : [Sco79] axioms : Reduced > Complete.
% English :
% Refs : [Sco79] Scott (1979), Identity and Existence in Intuitionist L
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 3 unt; 0 nHn; 8 RR)
% Number of literals : 21 ( 7 equ; 10 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 1-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 19 ( 2 sgn)
% SPC :
% Comments : The dependent axioms have been removed.
%--------------------------------------------------------------------------
%----Non-standard in that E(x) stands for "x exists", i.e. a system -for
%----intuitionistic logic. Viewed classically, this can be -taken
%----as a partitioning of models M into elements of E and -other elements
%----of M; then Scott's quantifiers are relativized -to range only over
%----E, whereas free variables range over all of -M.
%----Quaife has this written: (this looks really weird, but results -from
%----having = here stand for equivalence, and it is a strange -fact from
%----Scott's conception that all non-existent things are -equivalent. all
%----x all y ((x = y) | E(x) | E(y))).
%-----Restricted equality axioms
cnf(equivalence_implies_existence1,axiom,
( ~ equivalent(X,Y)
| there_exists(X) ) ).
cnf(equivalence_implies_existence2,axiom,
( ~ equivalent(X,Y)
| X = Y ) ).
cnf(existence_and_equality_implies_equivalence1,axiom,
( ~ there_exists(X)
| X != Y
| equivalent(X,Y) ) ).
%-----Category theory axioms
cnf(domain_has_elements,axiom,
( ~ there_exists(domain(X))
| there_exists(X) ) ).
cnf(codomain_has_elements,axiom,
( ~ there_exists(codomain(X))
| there_exists(X) ) ).
cnf(composition_implies_domain,axiom,
( ~ there_exists(compose(X,Y))
| there_exists(domain(X)) ) ).
cnf(domain_codomain_composition1,axiom,
( ~ there_exists(compose(X,Y))
| domain(X) = codomain(Y) ) ).
cnf(domain_codomain_composition2,axiom,
( ~ there_exists(domain(X))
| domain(X) != codomain(Y)
| there_exists(compose(X,Y)) ) ).
cnf(associativity_of_compose,axiom,
compose(X,compose(Y,Z)) = compose(compose(X,Y),Z) ).
cnf(compose_domain,axiom,
compose(X,domain(X)) = X ).
cnf(compose_codomain,axiom,
compose(codomain(X),X) = X ).
%--------------------------------------------------------------------------
Combinatory Logic
./COL001-0.ax
%------------------------------------------------------------------------------
% File : COL001-0 : TPTP v8.2.0. Bugfixed v1.2.0.
% Domain : Combinatory Logic
% Axioms : Type-respecting combinators
% Version : [Jec95] (equality) axioms.
% English :
% Refs : [Jec95] Jech (1995), Otter Experiments in a System of Combinat
% Source : [Jec95]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 10 ( 8 unt; 1 nHn; 2 RR)
% Number of literals : 12 ( 12 equ; 2 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 8 ( 8 usr; 4 con; 0-2 aty)
% Number of variables : 18 ( 3 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
cnf(k_definition,axiom,
apply(k(X),Y) = X ).
cnf(projection1,axiom,
apply(projection1,pair(X,Y)) = X ).
cnf(projection2,axiom,
apply(projection2,pair(X,Y)) = Y ).
cnf(pairing,axiom,
pair(apply(projection1,X),apply(projection2,X)) = X ).
cnf(pairwise_application,axiom,
apply(pair(X,Y),Z) = pair(apply(X,Z),apply(Y,Z)) ).
cnf(abstraction,axiom,
apply(apply(apply(abstraction,X),Y),Z) = apply(apply(X,k(Z)),apply(Y,Z)) ).
cnf(equality,axiom,
apply(eq,pair(X,X)) = projection1 ).
cnf(extensionality1,axiom,
( X = Y
| apply(eq,pair(X,Y)) = projection2 ) ).
cnf(extensionality2,axiom,
( X = Y
| apply(X,n(X,Y)) != apply(Y,n(X,Y)) ) ).
cnf(different_projections,axiom,
projection1 != projection2 ).
%------------------------------------------------------------------------------
./COL002-0.ax
%------------------------------------------------------------------------------
% File : COL002-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Combinatory Logic
% Axioms : Combinators
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Comb.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 25 ( 11 unt; 8 nHn; 21 RR)
% Number of literals : 63 ( 35 equ; 23 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 13 ( 13 usr; 5 con; 0-4 aty)
% Number of variables : 58 ( 16 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax
%------------------------------------------------------------------------------
cnf(cls_Comb_OAp__contractE_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,v_sko__uR_H(V_p,V_q,V_r))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uR8(V_p,V_q,V_r)),v_sko__uR9(V_p,V_q,V_r))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uR__(V_p,V_q,V_r),V_q) ) ).
cnf(cls_Comb_OAp__contractE_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uR_H(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uR8(V_p,V_q,V_r)),v_sko__uR9(V_p,V_q,V_r))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uR__(V_p,V_q,V_r),V_q) ) ).
cnf(cls_Comb_OAp__contractE_2,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uR__(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,v_sko__uR_H(V_p,V_q,V_r))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uR8(V_p,V_q,V_r)),v_sko__uR9(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__contractE_3,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uR_H(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uR__(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uR8(V_p,V_q,V_r)),v_sko__uR9(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__contractE_4,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,v_sko__uR_H(V_p,V_q,V_r))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uR8(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uR9(V_p,V_q,V_r),V_q))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uR__(V_p,V_q,V_r),V_q) ) ).
cnf(cls_Comb_OAp__contractE_5,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uR_H(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uR8(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uR9(V_p,V_q,V_r),V_q))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uR__(V_p,V_q,V_r),V_q) ) ).
cnf(cls_Comb_OAp__contractE_6,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uR__(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,v_sko__uR_H(V_p,V_q,V_r))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uR8(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uR9(V_p,V_q,V_r),V_q)) ) ).
cnf(cls_Comb_OAp__contractE_7,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uR_H(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uR__(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uR8(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uR9(V_p,V_q,V_r),V_q)) ) ).
cnf(cls_Comb_OI__contract__E_0,axiom,
~ c_in(c_Pair(c_Comb_OI,V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_OK1__contractD_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_z = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,v_sko__uR7(V_x,V_z)) ) ).
cnf(cls_Comb_OK1__contractD_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_x,v_sko__uR7(V_x,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OK__contractE_0,axiom,
~ c_in(c_Pair(c_Comb_Ocomb_OK,V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_OS__contractE_0,axiom,
~ c_in(c_Pair(c_Comb_Ocomb_OS,V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_Ocomb_Odistinct__1__iff1_0,axiom,
c_Comb_Ocomb_OK != c_Comb_Ocomb_OS ).
cnf(cls_Comb_Ocomb_Odistinct__2__iff1_0,axiom,
c_Comb_Ocomb_OS != c_Comb_Ocomb_OK ).
cnf(cls_Comb_Ocomb_Odistinct__3__iff1_0,axiom,
c_Comb_Ocomb_OK != c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H) ).
cnf(cls_Comb_Ocomb_Odistinct__4__iff1_0,axiom,
c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H) != c_Comb_Ocomb_OK ).
cnf(cls_Comb_Ocomb_Odistinct__5__iff1_0,axiom,
c_Comb_Ocomb_OS != c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H) ).
cnf(cls_Comb_Ocomb_Odistinct__6__iff1_0,axiom,
c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H) != c_Comb_Ocomb_OS ).
cnf(cls_Comb_Ocomb_Oinject__iff1_0,axiom,
( c_Comb_Ocomb_Oop_A_D_D(V_comb1,V_comb2) != c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H)
| V_comb1 = V_comb1_H ) ).
cnf(cls_Comb_Ocomb_Oinject__iff1_1,axiom,
( c_Comb_Ocomb_Oop_A_D_D(V_comb1,V_comb2) != c_Comb_Ocomb_Oop_A_D_D(V_comb1_H,V_comb2_H)
| V_comb2 = V_comb2_H ) ).
cnf(cls_Comb_Ocontract_OAp1_0,axiom,
( ~ c_in(c_Pair(V_x,V_y,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_x,V_z),c_Comb_Ocomb_Oop_A_D_D(V_y,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_Ocontract_OAp2_0,axiom,
( ~ c_in(c_Pair(V_x,V_y,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_z,V_x),c_Comb_Ocomb_Oop_A_D_D(V_z,V_y),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_Ocontract_OK_0,axiom,
c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_y),V_x,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_Ocontract_OS_0,axiom,
c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_y),V_z),c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(V_x,V_z),c_Comb_Ocomb_Oop_A_D_D(V_y,V_z)),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Ocontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
%------------------------------------------------------------------------------
./COL002-1.ax
%------------------------------------------------------------------------------
% File : COL002-1 : TPTP v8.2.0. Released v3.2.0.
% Domain : Combinatory Logic
% Axioms : Combinators
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Comb2.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 21 ( 3 unt; 6 nHn; 16 RR)
% Number of literals : 58 ( 25 equ; 19 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 17 ( 17 usr; 5 con; 0-4 aty)
% Number of variables : 53 ( 1 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax, COL002-0.ax
%------------------------------------------------------------------------------
cnf(cls_Comb_OAp__parcontractE_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uTF(V_p,V_q,V_r)),v_sko__uTG(V_p,V_q,V_r))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uTI(V_p,V_q,V_r),v_sko__uTH(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__parcontractE_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uTH(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uTF(V_p,V_q,V_r)),v_sko__uTG(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__parcontractE_2,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uTI(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uTF(V_p,V_q,V_r)),v_sko__uTG(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__parcontractE_3,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uTF(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uTG(V_p,V_q,V_r),V_q))
| V_r = c_Comb_Ocomb_Oop_A_D_D(v_sko__uTI(V_p,V_q,V_r),v_sko__uTH(V_p,V_q,V_r)) ) ).
cnf(cls_Comb_OAp__parcontractE_4,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_q,v_sko__uTH(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uTF(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uTG(V_p,V_q,V_r),V_q)) ) ).
cnf(cls_Comb_OAp__parcontractE_5,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_p,V_q),V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_p,v_sko__uTI(V_p,V_q,V_r),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_Oop_A_D_D(V_p,V_q)
| V_p = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_r)
| V_r = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(v_sko__uTF(V_p,V_q,V_r),V_q),c_Comb_Ocomb_Oop_A_D_D(v_sko__uTG(V_p,V_q,V_r),V_q)) ) ).
cnf(cls_Comb_OAp__reduce1_0,axiom,
( ~ c_in(c_Pair(V_x,V_y,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Transitive__Closure_Ortrancl(c_Comb_Ocontract,tc_Comb_Ocomb),tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_x,V_z),c_Comb_Ocomb_Oop_A_D_D(V_y,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Transitive__Closure_Ortrancl(c_Comb_Ocontract,tc_Comb_Ocomb),tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OAp__reduce2_0,axiom,
( ~ c_in(c_Pair(V_x,V_y,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Transitive__Closure_Ortrancl(c_Comb_Ocontract,tc_Comb_Ocomb),tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_z,V_x),c_Comb_Ocomb_Oop_A_D_D(V_z,V_y),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Transitive__Closure_Ortrancl(c_Comb_Ocontract,tc_Comb_Ocomb),tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OK1__parcontractD__dest_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_z = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,v_sko__uTE(V_x,V_z)) ) ).
cnf(cls_Comb_OK1__parcontractD__dest_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_x,v_sko__uTE(V_x,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OK__parcontractE_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_OK,V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_OK ) ).
cnf(cls_Comb_OS1__parcontractD__dest_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_z = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uTD(V_x,V_z)) ) ).
cnf(cls_Comb_OS1__parcontractD__dest_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_x,v_sko__uTD(V_x,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OS2__parcontractD__dest_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_y),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_z = c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,v_sko__uTB(V_x,V_y,V_z)),v_sko__uTC(V_x,V_y,V_z)) ) ).
cnf(cls_Comb_OS2__parcontractD__dest_1,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_y),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_x,v_sko__uTB(V_x,V_y,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OS2__parcontractD__dest_2,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_y),V_z,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(V_y,v_sko__uTC(V_x,V_y,V_z),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
cnf(cls_Comb_OS__parcontractE_0,axiom,
( ~ c_in(c_Pair(c_Comb_Ocomb_OS,V_r,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| V_r = c_Comb_Ocomb_OS ) ).
cnf(cls_Comb_Oparcontract_Ointros__1_0,axiom,
c_in(c_Pair(V_x,V_x,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_Oparcontract_Ointros__2_0,axiom,
c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OK,V_x),V_y),V_x,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_Oparcontract_Ointros__3_0,axiom,
c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_OS,V_x),V_y),V_z),c_Comb_Ocomb_Oop_A_D_D(c_Comb_Ocomb_Oop_A_D_D(V_x,V_z),c_Comb_Ocomb_Oop_A_D_D(V_y,V_z)),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ).
cnf(cls_Comb_Oparcontract_Ointros__4_0,axiom,
( ~ c_in(c_Pair(V_z,V_w,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| ~ c_in(c_Pair(V_x,V_y,tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb))
| c_in(c_Pair(c_Comb_Ocomb_Oop_A_D_D(V_x,V_z),c_Comb_Ocomb_Oop_A_D_D(V_y,V_w),tc_Comb_Ocomb,tc_Comb_Ocomb),c_Comb_Oparcontract,tc_prod(tc_Comb_Ocomb,tc_Comb_Ocomb)) ) ).
%------------------------------------------------------------------------------
Computing Theory
./COM001+0.ax
%------------------------------------------------------------------------------
% File : COM001+0 : TPTP v8.2.0. Released v6.4.0.
% Domain : Computing Theory
% Axioms : Common axioms for progress/preservation proof
% Version : [Gre15] axioms : Especial.
% English :
% Refs : [Pie02] Pierce (2002), Programming Languages
% : [Gre15] Grewe (2015), Email to Geoff Sutcliffe
% : [GE+15] Grewe et al. (2015), Type Systems for the Masses: Deri
% Source : [Gre15]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 54 ( 6 unt; 0 def)
% Number of atoms : 285 ( 227 equ)
% Maximal formula atoms : 33 ( 5 avg)
% Number of connectives : 267 ( 36 ~; 17 |; 120 &)
% ( 0 <=>; 94 =>; 0 <=; 0 <~>)
% Maximal formula depth : 23 ( 9 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 7 ( 5 usr; 1 prp; 0-3 aty)
% Number of functors : 16 ( 16 usr; 3 con; 0-3 aty)
% Number of variables : 307 ( 239 !; 68 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof('EQ-var',axiom,
! [VVar0,VVar1] :
( ( vvar(VVar0) = vvar(VVar1)
=> VVar0 = VVar1 )
& ( VVar0 = VVar1
=> vvar(VVar0) = vvar(VVar1) ) ) ).
fof('EQ-abs',axiom,
! [VVar0,VTyp0,VExp0,VVar1,VTyp1,VExp1] :
( ( vabs(VVar0,VTyp0,VExp0) = vabs(VVar1,VTyp1,VExp1)
=> ( VVar0 = VVar1
& VTyp0 = VTyp1
& VExp0 = VExp1 ) )
& ( ( VVar0 = VVar1
& VTyp0 = VTyp1
& VExp0 = VExp1 )
=> vabs(VVar0,VTyp0,VExp0) = vabs(VVar1,VTyp1,VExp1) ) ) ).
fof('EQ-app',axiom,
! [VExp0,VExp1,VExp2,VExp3] :
( ( vapp(VExp0,VExp1) = vapp(VExp2,VExp3)
=> ( VExp0 = VExp2
& VExp1 = VExp3 ) )
& ( ( VExp0 = VExp2
& VExp1 = VExp3 )
=> vapp(VExp0,VExp1) = vapp(VExp2,VExp3) ) ) ).
fof('DIFF-var-abs',axiom,
! [VVar0,VVar1,VTyp0,VExp0] : vvar(VVar0) != vabs(VVar1,VTyp0,VExp0) ).
fof('DIFF-var-app',axiom,
! [VVar0,VExp0,VExp1] : vvar(VVar0) != vapp(VExp0,VExp1) ).
fof('DIFF-abs-app',axiom,
! [VVar0,VTyp0,VExp0,VExp1,VExp2] : vabs(VVar0,VTyp0,VExp0) != vapp(VExp1,VExp2) ).
fof(isValue0,axiom,
! [Vx,VS,Ve,VExp0] :
( VExp0 = vabs(Vx,VS,Ve)
=> visValue(VExp0) ) ).
fof(isValue1,axiom,
! [Vx,VExp0] :
( VExp0 = vvar(Vx)
=> ~ visValue(VExp0) ) ).
fof(isValue2,axiom,
! [Ve1,Ve2,VExp0] :
( VExp0 = vapp(Ve1,Ve2)
=> ~ visValue(VExp0) ) ).
fof(isFreeVar0,axiom,
! [VVar0,VExp0,Vx,Vv] :
( ( VVar0 = Vv
& VExp0 = vvar(Vx) )
=> ( ( Vx = Vv
=> visFreeVar(VVar0,VExp0) )
& ( visFreeVar(VVar0,VExp0)
=> Vx = Vv ) ) ) ).
fof(isFreeVar1,axiom,
! [VT,VVar0,VExp0,Vx,Vv,Ve] :
( ( VVar0 = Vv
& VExp0 = vabs(Vx,VT,Ve) )
=> ( ( ( Vx != Vv
& visFreeVar(Vv,Ve) )
=> visFreeVar(VVar0,VExp0) )
& ( visFreeVar(VVar0,VExp0)
=> ( Vx != Vv
& visFreeVar(Vv,Ve) ) ) ) ) ).
fof(isFreeVar2,axiom,
! [VVar0,VExp0,Ve1,Vv,Ve2] :
( ( VVar0 = Vv
& VExp0 = vapp(Ve1,Ve2) )
=> ( ( ( visFreeVar(Vv,Ve1)
| visFreeVar(Vv,Ve2) )
=> visFreeVar(VVar0,VExp0) )
& ( visFreeVar(VVar0,VExp0)
=> ( visFreeVar(Vv,Ve1)
| visFreeVar(Vv,Ve2) ) ) ) ) ).
fof('EQ-empty',axiom,
( ( vempty = vempty
=> $true )
& ( $true
=> vempty = vempty ) ) ).
fof('EQ-bind',axiom,
! [VVar0,VTyp0,VCtx0,VVar1,VTyp1,VCtx1] :
( ( vbind(VVar0,VTyp0,VCtx0) = vbind(VVar1,VTyp1,VCtx1)
=> ( VVar0 = VVar1
& VTyp0 = VTyp1
& VCtx0 = VCtx1 ) )
& ( ( VVar0 = VVar1
& VTyp0 = VTyp1
& VCtx0 = VCtx1 )
=> vbind(VVar0,VTyp0,VCtx0) = vbind(VVar1,VTyp1,VCtx1) ) ) ).
fof('EQ-noType',axiom,
( ( vnoType = vnoType
=> $true )
& ( $true
=> vnoType = vnoType ) ) ).
fof('EQ-someType',axiom,
! [VTyp0,VTyp1] :
( ( vsomeType(VTyp0) = vsomeType(VTyp1)
=> VTyp0 = VTyp1 )
& ( VTyp0 = VTyp1
=> vsomeType(VTyp0) = vsomeType(VTyp1) ) ) ).
fof('DIFF-empty-bind',axiom,
! [VVar0,VTyp0,VCtx0] : vempty != vbind(VVar0,VTyp0,VCtx0) ).
fof('DIFF-noType-someType',axiom,
! [VTyp0] : vnoType != vsomeType(VTyp0) ).
fof(isSomeType0,axiom,
! [VOptTyp0] :
( VOptTyp0 = vnoType
=> ~ visSomeType(VOptTyp0) ) ).
fof(isSomeType1,axiom,
! [Ve,VOptTyp0] :
( VOptTyp0 = vsomeType(Ve)
=> visSomeType(VOptTyp0) ) ).
fof(getSomeType0,axiom,
! [VOptTyp0,RESULT,Ve] :
( VOptTyp0 = vsomeType(Ve)
=> ( RESULT = vgetSomeType(VOptTyp0)
=> RESULT = Ve ) ) ).
fof(lookup0,axiom,
! [Vx,VVar0,VCtx0,RESULT] :
( ( VVar0 = Vx
& VCtx0 = vempty )
=> ( RESULT = vlookup(VVar0,VCtx0)
=> RESULT = vnoType ) ) ).
fof(lookup1,axiom,
! [VC,Vx,Vy,VVar0,VCtx0,RESULT,VTy] :
( ( VVar0 = Vx
& VCtx0 = vbind(Vy,VTy,VC) )
=> ( Vx = Vy
=> ( RESULT = vlookup(VVar0,VCtx0)
=> RESULT = vsomeType(VTy) ) ) ) ).
fof(lookup2,axiom,
! [VTy,Vy,VVar0,VCtx0,RESULT,Vx,VC] :
( ( VVar0 = Vx
& VCtx0 = vbind(Vy,VTy,VC) )
=> ( Vx != Vy
=> ( RESULT = vlookup(VVar0,VCtx0)
=> RESULT = vlookup(Vx,VC) ) ) ) ).
fof('lookup-INV',axiom,
! [VVar0,VCtx0,RESULT] :
( vlookup(VVar0,VCtx0) = RESULT
=> ( ? [Vx] :
( VVar0 = Vx
& VCtx0 = vempty
& RESULT = vnoType )
| ? [VC,Vx,Vy,VTy] :
( VVar0 = Vx
& VCtx0 = vbind(Vy,VTy,VC)
& Vx = Vy
& RESULT = vsomeType(VTy) )
| ? [VTy,Vy,Vx,VC] :
( VVar0 = Vx
& VCtx0 = vbind(Vy,VTy,VC)
& Vx != Vy
& RESULT = vlookup(Vx,VC) ) ) ) ).
fof('T-Context-Duplicate',axiom,
! [Vy,VTy,Vx,VTx,VC,Ve,VT] :
( ( Vx = Vy
& vtcheck(vbind(Vx,VTx,vbind(Vy,VTy,VC)),Ve,VT) )
=> vtcheck(vbind(Vx,VTx,VC),Ve,VT) ) ).
fof('T-Context-Swap',axiom,
! [Vy,VTy,Vx,VTx,VC,Ve,VT] :
( ( Vx != Vy
& vtcheck(vbind(Vx,VTx,vbind(Vy,VTy,VC)),Ve,VT) )
=> vtcheck(vbind(Vy,VTy,vbind(Vx,VTx,VC)),Ve,VT) ) ).
fof('gensym-is-fresh',axiom,
! [Vv,Ve] :
( vgensym(Ve) = Vv
=> ~ visFreeVar(Vv,Ve) ) ).
fof(subst0,axiom,
! [Vx,Vy,VVar0,VExp0,VExp1,RESULT,Ve] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vvar(Vy) )
=> ( Vx = Vy
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = Ve ) ) ) ).
fof(subst1,axiom,
! [Ve,Vx,VVar0,VExp0,VExp1,RESULT,Vy] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vvar(Vy) )
=> ( Vx != Vy
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = vvar(Vy) ) ) ) ).
fof(subst2,axiom,
! [VVar0,VExp0,VExp1,RESULT,Ve1,Vx,Ve,Ve2] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vapp(Ve1,Ve2) )
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = vapp(vsubst(Vx,Ve,Ve1),vsubst(Vx,Ve,Ve2)) ) ) ).
fof(subst3,axiom,
! [Ve,Vx,VVar0,VExp0,VExp1,RESULT,Vy,VT,Ve1] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1) )
=> ( Vx = Vy
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = vabs(Vy,VT,Ve1) ) ) ) ).
fof(subst4,axiom,
! [VVar0,VExp0,VExp1,RESULT,Vx,Ve,VT,Vy,Vfresh,Ve1] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1) )
=> ( ( Vx != Vy
& visFreeVar(Vy,Ve)
& Vfresh = vgensym(vapp(vapp(Ve,Ve1),vvar(Vx))) )
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = vsubst(Vx,Ve,vabs(Vfresh,VT,vsubst(Vy,vvar(Vfresh),Ve1))) ) ) ) ).
fof(subst5,axiom,
! [VVar0,VExp0,VExp1,RESULT,Vy,VT,Vx,Ve,Ve1] :
( ( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1) )
=> ( ( Vx != Vy
& ~ visFreeVar(Vy,Ve) )
=> ( RESULT = vsubst(VVar0,VExp0,VExp1)
=> RESULT = vabs(Vy,VT,vsubst(Vx,Ve,Ve1)) ) ) ) ).
fof('subst-INV',axiom,
! [VVar0,VExp0,VExp1,RESULT] :
( vsubst(VVar0,VExp0,VExp1) = RESULT
=> ( ? [Vx,Vy,Ve] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vvar(Vy)
& Vx = Vy
& RESULT = Ve )
| ? [Ve,Vx,Vy] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vvar(Vy)
& Vx != Vy
& RESULT = vvar(Vy) )
| ? [Ve1,Vx,Ve,Ve2] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vapp(Ve1,Ve2)
& RESULT = vapp(vsubst(Vx,Ve,Ve1),vsubst(Vx,Ve,Ve2)) )
| ? [Ve,Vx,Vy,VT,Ve1] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1)
& Vx = Vy
& RESULT = vabs(Vy,VT,Ve1) )
| ? [Vx,Ve,VT,Vy,Vfresh,Ve1] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1)
& Vx != Vy
& visFreeVar(Vy,Ve)
& Vfresh = vgensym(vapp(vapp(Ve,Ve1),vvar(Vx)))
& RESULT = vsubst(Vx,Ve,vabs(Vfresh,VT,vsubst(Vy,vvar(Vfresh),Ve1))) )
| ? [Vy,VT,Vx,Ve,Ve1] :
( VVar0 = Vx
& VExp0 = Ve
& VExp1 = vabs(Vy,VT,Ve1)
& Vx != Vy
& ~ visFreeVar(Vy,Ve)
& RESULT = vabs(Vy,VT,vsubst(Vx,Ve,Ve1)) ) ) ) ).
fof('EQ-noExp',axiom,
( ( vnoExp = vnoExp
=> $true )
& ( $true
=> vnoExp = vnoExp ) ) ).
fof('EQ-someExp',axiom,
! [VExp0,VExp1] :
( ( vsomeExp(VExp0) = vsomeExp(VExp1)
=> VExp0 = VExp1 )
& ( VExp0 = VExp1
=> vsomeExp(VExp0) = vsomeExp(VExp1) ) ) ).
fof('DIFF-noExp-someExp',axiom,
! [VExp0] : vnoExp != vsomeExp(VExp0) ).
fof(isSomeExp0,axiom,
! [VOptExp0] :
( VOptExp0 = vnoExp
=> ~ visSomeExp(VOptExp0) ) ).
fof(isSomeExp1,axiom,
! [Ve,VOptExp0] :
( VOptExp0 = vsomeExp(Ve)
=> visSomeExp(VOptExp0) ) ).
fof(getSomeExp0,axiom,
! [VOptExp0,RESULT,Ve] :
( VOptExp0 = vsomeExp(Ve)
=> ( RESULT = vgetSomeExp(VOptExp0)
=> RESULT = Ve ) ) ).
fof(reduce0,axiom,
! [Vx,VExp0,RESULT] :
( VExp0 = vvar(Vx)
=> ( RESULT = vreduce(VExp0)
=> RESULT = vnoExp ) ) ).
fof(reduce1,axiom,
! [Vx,VS,Ve,VExp0,RESULT] :
( VExp0 = vabs(Vx,VS,Ve)
=> ( RESULT = vreduce(VExp0)
=> RESULT = vnoExp ) ) ).
fof(reduce2,axiom,
! [Ve2,VExp0,RESULT,Vx,VS,Ve1,Ve2red] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
=> ( ( Ve2red = vreduce(Ve2)
& visSomeExp(Ve2red) )
=> ( RESULT = vreduce(VExp0)
=> RESULT = vsomeExp(vapp(vabs(Vx,VS,Ve1),vgetSomeExp(Ve2red))) ) ) ) ).
fof(reduce3,axiom,
! [VS,Ve2red,VExp0,RESULT,Vx,Ve2,Ve1] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
=> ( ( Ve2red = vreduce(Ve2)
& ~ visSomeExp(Ve2red)
& visValue(Ve2) )
=> ( RESULT = vreduce(VExp0)
=> RESULT = vsomeExp(vsubst(Vx,Ve2,Ve1)) ) ) ) ).
fof(reduce4,axiom,
! [Vx,VS,Ve1,Ve2red,Ve2,VExp0,RESULT] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
=> ( ( Ve2red = vreduce(Ve2)
& ~ visSomeExp(Ve2red)
& ~ visValue(Ve2) )
=> ( RESULT = vreduce(VExp0)
=> RESULT = vnoExp ) ) ) ).
fof(reduce5,axiom,
! [Ve1,VExp0,RESULT,Ve1red,Ve2] :
( ( VExp0 = vapp(Ve1,Ve2)
& ! [VVx0,VVS0,VVe10] : Ve1 != vabs(VVx0,VVS0,VVe10) )
=> ( ( Ve1red = vreduce(Ve1)
& visSomeExp(Ve1red) )
=> ( RESULT = vreduce(VExp0)
=> RESULT = vsomeExp(vapp(vgetSomeExp(Ve1red),Ve2)) ) ) ) ).
fof(reduce6,axiom,
! [Ve2,Ve1,Ve1red,VExp0,RESULT] :
( ( VExp0 = vapp(Ve1,Ve2)
& ! [VVx0,VVS0,VVe10] : Ve1 != vabs(VVx0,VVS0,VVe10) )
=> ( ( Ve1red = vreduce(Ve1)
& ~ visSomeExp(Ve1red) )
=> ( RESULT = vreduce(VExp0)
=> RESULT = vnoExp ) ) ) ).
fof('reduce-INV',axiom,
! [VExp0,RESULT] :
( vreduce(VExp0) = RESULT
=> ( ? [Vx] :
( VExp0 = vvar(Vx)
& RESULT = vnoExp )
| ? [Vx,VS,Ve] :
( VExp0 = vabs(Vx,VS,Ve)
& RESULT = vnoExp )
| ? [Ve2,Vx,VS,Ve1,Ve2red] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
& Ve2red = vreduce(Ve2)
& visSomeExp(Ve2red)
& RESULT = vsomeExp(vapp(vabs(Vx,VS,Ve1),vgetSomeExp(Ve2red))) )
| ? [VS,Ve2red,Vx,Ve2,Ve1] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
& Ve2red = vreduce(Ve2)
& ~ visSomeExp(Ve2red)
& visValue(Ve2)
& RESULT = vsomeExp(vsubst(Vx,Ve2,Ve1)) )
| ? [Vx,VS,Ve1,Ve2red,Ve2] :
( VExp0 = vapp(vabs(Vx,VS,Ve1),Ve2)
& Ve2red = vreduce(Ve2)
& ~ visSomeExp(Ve2red)
& ~ visValue(Ve2)
& RESULT = vnoExp )
| ? [Ve1,Ve1red,Ve2] :
( VExp0 = vapp(Ve1,Ve2)
& ! [VVx0,VVS0,VVe10] : Ve1 != vabs(VVx0,VVS0,VVe10)
& Ve1red = vreduce(Ve1)
& visSomeExp(Ve1red)
& RESULT = vsomeExp(vapp(vgetSomeExp(Ve1red),Ve2)) )
| ? [Ve2,Ve1,Ve1red] :
( VExp0 = vapp(Ve1,Ve2)
& ! [VVx0,VVS0,VVe10] : Ve1 != vabs(VVx0,VVS0,VVe10)
& Ve1red = vreduce(Ve1)
& ~ visSomeExp(Ve1red)
& RESULT = vnoExp ) ) ) ).
fof('EQ-arrow',axiom,
! [VTyp0,VTyp1,VTyp2,VTyp3] :
( ( varrow(VTyp0,VTyp1) = varrow(VTyp2,VTyp3)
=> ( VTyp0 = VTyp2
& VTyp1 = VTyp3 ) )
& ( ( VTyp0 = VTyp2
& VTyp1 = VTyp3 )
=> varrow(VTyp0,VTyp1) = varrow(VTyp2,VTyp3) ) ) ).
fof('T-var',axiom,
! [VC,Vx,VT] :
( vlookup(Vx,VC) = vsomeType(VT)
=> vtcheck(VC,vvar(Vx),VT) ) ).
fof('T-abs',axiom,
! [VC,Vx,Ve,VS,VT] :
( vtcheck(vbind(Vx,VS,VC),Ve,VT)
=> vtcheck(VC,vabs(Vx,VS,Ve),varrow(VS,VT)) ) ).
fof('T-app',axiom,
! [VS,VC,Ve1,Ve2,VT] :
( ( vtcheck(VC,Ve1,varrow(VS,VT))
& vtcheck(VC,Ve2,VS) )
=> vtcheck(VC,vapp(Ve1,Ve2),VT) ) ).
fof('T-inv',axiom,
! [Ve,VT,VC] :
( vtcheck(VC,Ve,VT)
=> ( ? [Vx] :
( Ve = vvar(Vx)
& vlookup(Vx,VC) = vsomeType(VT) )
| ? [Vx,Ve2,VT1,VT2] :
( Ve = vabs(Vx,VT1,Ve2)
& VT = varrow(VT1,VT2)
& vtcheck(vbind(Vx,VT1,VC),Ve2,VT2) )
| ? [Ve1,Ve2,VS] :
( Ve = vapp(Ve1,Ve2)
& vtcheck(VC,Ve1,varrow(VS,VT))
& vtcheck(VC,Ve2,VS) ) ) ) ).
%------------------------------------------------------------------------------
./COM001+1.ax
%------------------------------------------------------------------------------
% File : COM001+1 : TPTP v8.2.0. Released v6.4.0.
% Domain : Computing Theory
% Axioms : Common axioms for progress/preservation proof
% Version : [Gre15] axioms : Especial.
% English :
% Refs : [Pie02] Pierce (2002), Programming Languages
% : [Gre15] Grewe (2015), Email to Geoff Sutcliffe
% : [GE+15] Grewe et al. (2015), Type Systems for the Masses: Deri
% Source : [Gre15]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 1 unt; 0 def)
% Number of atoms : 14 ( 0 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 11 ( 3 ~; 0 |; 3 &)
% ( 0 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 6 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 2-3 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-3 aty)
% Number of variables : 17 ( 17 !; 0 ?)
% SPC :
% Comments : Requires COM001+0.ax
%------------------------------------------------------------------------------
fof('alpha-equiv-refl',axiom,
! [Ve] : valphaEquivalent(Ve,Ve) ).
fof('alpha-equiv-sym',axiom,
! [Ve2,Ve1] :
( valphaEquivalent(Ve1,Ve2)
=> valphaEquivalent(Ve2,Ve1) ) ).
fof('alpha-equiv-trans',axiom,
! [Ve2,Ve1,Ve3] :
( ( valphaEquivalent(Ve1,Ve2)
& valphaEquivalent(Ve2,Ve3) )
=> valphaEquivalent(Ve1,Ve3) ) ).
fof('alpha-equiv-subst-abs',axiom,
! [VS,Vx,Vy,Ve] :
( ~ visFreeVar(Vy,Ve)
=> valphaEquivalent(vabs(Vx,VS,Ve),vabs(Vy,VS,vsubst(Vx,vvar(Vy),Ve))) ) ).
fof('alpha-equiv-typing',axiom,
! [Ve,VC,Ve1,VT] :
( ( vtcheck(VC,Ve,VT)
& valphaEquivalent(Ve,Ve1) )
=> vtcheck(VC,Ve1,VT) ) ).
fof('alpha-equiv-FreeVar',axiom,
! [Ve,Vx,Ve1] :
( ( ~ visFreeVar(Vx,Ve)
& valphaEquivalent(Ve,Ve1) )
=> ~ visFreeVar(Vx,Ve1) ) ).
%------------------------------------------------------------------------------
Commonsense Reasoning
./CSR001+0.ax
%------------------------------------------------------------------------------
% File : CSR001+0 : TPTP v8.2.0. Released .0.
% Domain : Commonsense Reasoning
% Axioms : Standard discrete event calculus axioms
% Version : [Mue04] axioms : Especial.
% English :
% Refs : [Mue04] Mueller (2004), A Tool for Satisfiability-based Common
% : [MS02] Miller & Shanahan (2002), Some Alternative Formulation
% Source : [Mue04]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 12 ( 0 unt; 0 def)
% Number of atoms : 54 ( 0 equ)
% Maximal formula atoms : 6 ( 4 avg)
% Number of connectives : 56 ( 14 ~; 2 |; 28 &)
% ( 2 <=>; 10 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 9 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 11 ( 11 usr; 0 prp; 2-4 aty)
% Number of functors : 3 ( 3 usr; 2 con; 0-2 aty)
% Number of variables : 44 ( 36 !; 8 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----DEC1
fof(stoppedin_defn,axiom,
! [Time1,Fluent,Time2] :
( stoppedIn(Time1,Fluent,Time2)
<=> ? [Event,Time] :
( happens(Event,Time)
& less(Time1,Time)
& less(Time,Time2)
& terminates(Event,Fluent,Time) ) ) ).
%----DEC2
fof(startedin_defn,axiom,
! [Time1,Time2,Fluent] :
( startedIn(Time1,Fluent,Time2)
<=> ? [Event,Time] :
( happens(Event,Time)
& less(Time1,Time)
& less(Time,Time2)
& initiates(Event,Fluent,Time) ) ) ).
%----DEC3
fof(change_holding,axiom,
! [Event,Time,Fluent,Fluent2,Offset] :
( ( happens(Event,Time)
& initiates(Event,Fluent,Time)
& less(n0,Offset)
& trajectory(Fluent,Time,Fluent2,Offset)
& ~ stoppedIn(Time,Fluent,plus(Time,Offset)) )
=> holdsAt(Fluent2,plus(Time,Offset)) ) ).
%----DEC4
fof(antitrajectory,axiom,
! [Event,Time1,Fluent1,Time2,Fluent2] :
( ( happens(Event,Time1)
& terminates(Event,Fluent1,Time1)
& less(n0,Time2)
& antitrajectory(Fluent1,Time1,Fluent2,Time2)
& ~ startedIn(Time1,Fluent1,plus(Time1,Time2)) )
=> holdsAt(Fluent2,plus(Time1,Time2)) ) ).
%----DEC5
fof(keep_holding,axiom,
! [Fluent,Time] :
( ( holdsAt(Fluent,Time)
& ~ releasedAt(Fluent,plus(Time,n1))
& ~ ? [Event] :
( happens(Event,Time)
& terminates(Event,Fluent,Time) ) )
=> holdsAt(Fluent,plus(Time,n1)) ) ).
%----DEC6
fof(keep_not_holding,axiom,
! [Fluent,Time] :
( ( ~ holdsAt(Fluent,Time)
& ~ releasedAt(Fluent,plus(Time,n1))
& ~ ? [Event] :
( happens(Event,Time)
& initiates(Event,Fluent,Time) ) )
=> ~ holdsAt(Fluent,plus(Time,n1)) ) ).
%----DEC7
fof(keep_released,axiom,
! [Fluent,Time] :
( ( releasedAt(Fluent,Time)
& ~ ? [Event] :
( happens(Event,Time)
& ( initiates(Event,Fluent,Time)
| terminates(Event,Fluent,Time) ) ) )
=> releasedAt(Fluent,plus(Time,n1)) ) ).
%----DEC8
fof(keep_not_released,axiom,
! [Fluent,Time] :
( ( ~ releasedAt(Fluent,Time)
& ~ ? [Event] :
( happens(Event,Time)
& releases(Event,Fluent,Time) ) )
=> ~ releasedAt(Fluent,plus(Time,n1)) ) ).
%----DEC9
fof(happens_holds,axiom,
! [Event,Time,Fluent] :
( ( happens(Event,Time)
& initiates(Event,Fluent,Time) )
=> holdsAt(Fluent,plus(Time,n1)) ) ).
%----DEC10
fof(happens_terminates_not_holds,axiom,
! [Event,Time,Fluent] :
( ( happens(Event,Time)
& terminates(Event,Fluent,Time) )
=> ~ holdsAt(Fluent,plus(Time,n1)) ) ).
%----DEC11
fof(happens_releases,axiom,
! [Event,Time,Fluent] :
( ( happens(Event,Time)
& releases(Event,Fluent,Time) )
=> releasedAt(Fluent,plus(Time,n1)) ) ).
%----DEC12
fof(happens_not_released,axiom,
! [Event,Time,Fluent] :
( ( happens(Event,Time)
& ( initiates(Event,Fluent,Time)
| terminates(Event,Fluent,Time) ) )
=> ~ releasedAt(Fluent,plus(Time,n1)) ) ).
%------------------------------------------------------------------------------
./CSR001+1.ax
%------------------------------------------------------------------------------
% File : CSR001+1 : TPTP v8.2.0. Released .0.
% Domain : Commonsense Reasoning
% Axioms : Kitchen sink scenario
% Version : [Sha97] axioms : Especial.
% English :
% Refs : [Sha97] Shanahan (1997), Solving the Frame Problem
% Source : [Sha97]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 13 ( 6 unt; 0 def)
% Number of atoms : 39 ( 27 equ)
% Maximal formula atoms : 11 ( 3 avg)
% Number of connectives : 32 ( 6 ~; 5 |; 14 &)
% ( 5 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 7 ( 6 usr; 0 prp; 2-4 aty)
% Number of functors : 9 ( 9 usr; 7 con; 0-2 aty)
% Number of variables : 25 ( 22 !; 3 ?)
% SPC :
% Comments : Requires CSR001+0.ax
%------------------------------------------------------------------------------
fof(initiates_all_defn,axiom,
! [Event,Fluent,Time] :
( initiates(Event,Fluent,Time)
<=> ( ( Event = tapOn
& Fluent = filling )
| ( Event = overflow
& Fluent = spilling )
| ? [Height] :
( holdsAt(waterLevel(Height),Time)
& Event = tapOff
& Fluent = waterLevel(Height) )
| ? [Height] :
( holdsAt(waterLevel(Height),Time)
& Event = overflow
& Fluent = waterLevel(Height) ) ) ) ).
fof(terminates_all_defn,axiom,
! [Event,Fluent,Time] :
( terminates(Event,Fluent,Time)
<=> ( ( Event = tapOff
& Fluent = filling )
| ( Event = overflow
& Fluent = filling ) ) ) ).
%----tapOn event releases all waterLevels at all times
fof(releases_all_defn,axiom,
! [Event,Fluent,Time] :
( releases(Event,Fluent,Time)
<=> ? [Height] :
( Event = tapOn
& Fluent = waterLevel(Height) ) ) ).
fof(happens_all_defn,axiom,
! [Event,Time] :
( happens(Event,Time)
<=> ( ( Event = tapOn
& Time = n0 )
| ( holdsAt(waterLevel(n3),Time)
& holdsAt(filling,Time)
& Event = overflow ) ) ) ).
fof(change_of_waterLevel,axiom,
! [Height1,Time,Height2,Offset] :
( ( holdsAt(waterLevel(Height1),Time)
& Height2 = plus(Height1,Offset) )
=> trajectory(filling,Time,waterLevel(Height2),Offset) ) ).
fof(same_waterLevel,axiom,
! [Time,Height1,Height2] :
( ( holdsAt(waterLevel(Height1),Time)
& holdsAt(waterLevel(Height2),Time) )
=> Height1 = Height2 ) ).
%----Distinct events
fof(tapOff_not_tapOn,axiom,
tapOff != tapOn ).
fof(tapOff_not_overflow,axiom,
tapOff != overflow ).
fof(overflow_not_tapOn,axiom,
overflow != tapOn ).
%----Distinct fluents
fof(filling_not_waterLevel,axiom,
! [X] : filling != waterLevel(X) ).
fof(spilling_not_waterLevel,axiom,
! [X] : spilling != waterLevel(X) ).
fof(filling_not_spilling,axiom,
filling != spilling ).
fof(distinct_waterLevels,axiom,
! [X,Y] :
( waterLevel(X) = waterLevel(Y)
<=> X = Y ) ).
%------------------------------------------------------------------------------
./CSR001+2.ax
%------------------------------------------------------------------------------
% File : CSR001+2 : TPTP v8.2.0. Released .0.
% Domain : Commonsense Reasoning
% Axioms : Supermarket trolley scenario
% Version : [Sha97] axioms : Especial.
% English :
% Refs : [Sha97] Shanahan (1997), Solving the Frame Problem
% Source : [Sha97]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 5 unt; 0 def)
% Number of atoms : 43 ( 30 equ)
% Maximal formula atoms : 19 ( 5 avg)
% Number of connectives : 46 ( 11 ~; 10 |; 22 &)
% ( 3 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 6 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-3 aty)
% Number of functors : 8 ( 8 usr; 8 con; 0-0 aty)
% Number of variables : 11 ( 11 !; 0 ?)
% SPC :
% Comments : Requires CSR001+0.ax
%------------------------------------------------------------------------------
fof(initiates_all_defn,axiom,
! [Event,Fluent,Time] :
( initiates(Event,Fluent,Time)
<=> ( ( Event = push
& Fluent = forwards
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = backwards
& ~ happens(push,Time) )
| ( Event = pull
& Fluent = spinning
& happens(push,Time) ) ) ) ).
fof(terminates_all_defn,axiom,
! [Event,Fluent,Time] :
( terminates(Event,Fluent,Time)
<=> ( ( Event = push
& Fluent = backwards
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = forwards
& ~ happens(push,Time) )
| ( Event = pull
& Fluent = forwards
& happens(push,Time) )
| ( Event = pull
& Fluent = backwards
& happens(push,Time) )
| ( Event = push
& Fluent = spinning
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = spinning
& ~ happens(push,Time) ) ) ) ).
fof(releases_all_defn,axiom,
! [Event,Fluent,Time] : ~ releases(Event,Fluent,Time) ).
fof(happens_all_defn,axiom,
! [Event,Time] :
( happens(Event,Time)
<=> ( ( Event = push
& Time = n0 )
| ( Event = pull
& Time = n1 )
| ( Event = pull
& Time = n2 )
| ( Event = push
& Time = n2 ) ) ) ).
%----Distinct events
fof(push_not_pull,axiom,
push != pull ).
%----Distinct fluents
fof(forwards_not_backwards,axiom,
forwards != backwards ).
fof(forwards_not_spinning,axiom,
forwards != spinning ).
fof(spinning_not_backwards,axiom,
spinning != backwards ).
%------------------------------------------------------------------------------
./CSR001+3.ax
%------------------------------------------------------------------------------
% File : CSR001+3 : TPTP v8.2.0. Released .0.
% Domain : Commonsense Reasoning
% Axioms : Supermarket trolley scenario for multiple trolleys
% Version : [Mue05] axioms : Especial.
% English :
% Refs : [Mue05] Mueller (2005), Email to Geoff Sutcliffe
% Source : [Mue05]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 9 ( 5 unt; 0 def)
% Number of atoms : 40 ( 28 equ)
% Maximal formula atoms : 19 ( 4 avg)
% Number of connectives : 48 ( 17 ~; 7 |; 20 &)
% ( 2 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 15 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-3 aty)
% Number of functors : 5 ( 5 usr; 0 con; 1-2 aty)
% Number of variables : 26 ( 22 !; 4 ?)
% SPC :
% Comments : Requires CSR001+0.ax
%------------------------------------------------------------------------------
fof(initiates_all_defn,axiom,
! [Event,Fluent,Time] :
( initiates(Event,Fluent,Time)
<=> ? [Agent,Trolley] :
( ( Event = push(Agent,Trolley)
& Fluent = forwards(Trolley)
& ~ happens(pull(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = backwards(Trolley)
& ~ happens(push(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = spinning(Trolley)
& happens(push(Agent,Trolley),Time) ) ) ) ).
fof(terminates_all_defn,axiom,
! [Event,Fluent,Time] :
( terminates(Event,Fluent,Time)
<=> ? [Agent,Trolley] :
( ( Event = push(Agent,Trolley)
& Fluent = backwards(Trolley)
& ~ happens(pull(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = forwards(Trolley)
& ~ happens(push(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = forwards(Trolley)
& happens(push(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = backwards(Trolley)
& happens(push(Agent,Trolley),Time) )
| ( Event = push(Agent,Trolley)
& Fluent = spinning(Trolley)
& ~ happens(pull(Agent,Trolley),Time) )
| ( Event = pull(Agent,Trolley)
& Fluent = spinning(Trolley)
& ~ happens(push(Agent,Trolley),Time) ) ) ) ).
fof(releases_all_defn,axiom,
! [Event,Fluent,Time] : ~ releases(Event,Fluent,Time) ).
%----Distinct events
fof(push_not_pull,axiom,
! [Agent,Trolley] : push(Agent,Trolley) != pull(Agent,Trolley) ).
fof(push_unique,axiom,
! [Agent1,Agent2,Trolley1,Trolley2] :
( ( Agent1 != Agent2
& Trolley1 != Trolley2 )
=> push(Agent1,Trolley1) != push(Agent2,Trolley2) ) ).
fof(pull_unique,axiom,
! [Agent1,Agent2,Trolley1,Trolley2] :
( ( Agent1 != Agent2
& Trolley1 != Trolley2 )
=> pull(Agent1,Trolley1) != pull(Agent2,Trolley2) ) ).
%----Distinct fluents
fof(forwards_not_backwards,axiom,
! [Trolley] : forwards(Trolley) != backwards(Trolley) ).
fof(forwards_not_spinning,axiom,
! [Trolley] : forwards(Trolley) != spinning(Trolley) ).
fof(spinning_not_backwards,axiom,
! [Trolley] : spinning(Trolley) != backwards(Trolley) ).
%------------------------------------------------------------------------------
./CSR002+0.ax
%------------------------------------------------------------------------------
% File : CSR002+0 : TPTP v8.2.0. Released v3.4.0.
% Domain : Common Sense Reasoning
% Axioms : 0 axioms from Cyc
% Version : Especial.
% English :
% Refs : [RS+] Reagan Smith et al., The Cyc TPTP Challenge Problem
% Source : [RS+]
% Names :
% Status : Satisfiable
% Syntax : WARNING: No formulae parsed from -t
% SPC :
% Comments : Autogenerated from the OpenCyc KB. Documentation can be found at
% http://opencyc.org/doc/#TPTP_Challenge_Problem_Set
% : Cyc(R) Knowledge Base Copyright(C) 1995-2007 Cycorp, Inc., Austin,
% TX, USA. All rights reserved.
% : OpenCyc Knowledge Base Copyright(C) 2001-2007 Cycorp, Inc.,
% Austin, TX, USA. All rights reserved.
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
./CSR002+1.ax
Very long 5582
./CSR002+2.ax
Very long 38068
./CSR002+3.ax
Very long 203713
./CSR002+4.ax
Very long 2632820
./CSR002+5.ax
Very long 15512609
./CSR003+0.ax
Very long 36727
./CSR003+1.ax
Very long 80335
./CSR003+2.ax
Very long 287360
./CSR003+3.ax
Very long 22749
./CSR003+4.ax
Very long 63738
./CSR003+5.ax
Very long 268584
./CSR004+0.ax
Very long 31277
./CSR005^0.ax
Very long 20418
./CSR006+0.ax
Very long 35192
Data Structures
./DAT001_0.ax
%------------------------------------------------------------------------------
% File : DAT001_0 : TPTP v8.2.0. Released v5.0.0.
% Domain : Data Structures
% Axioms : Integer arrays
% Version : [Wal10] axioms.
% English :
% Refs : [PW06] Prevosto & Waldmann (2006), SPASS+T
% : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe
% Source : [Wal10]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 1 unt; 3 typ; 0 def)
% Number of atoms : 3 ( 3 equ)
% Maximal formula atoms : 2 ( 0 avg)
% Number of connectives : 1 ( 0 ~; 1 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 5 avg)
% Maximal term depth : 3 ( 1 avg)
% Number arithmetic : 5 ( 0 atm; 0 fun; 0 num; 5 var)
% Number of types : 2 ( 1 usr; 1 ari)
% Number of type conns : 5 ( 2 >; 3 *; 0 +; 0 <<)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-3 aty)
% Number of variables : 7 ( 7 !; 0 ?; 7 :)
% SPC : TFF_SAT_RFO_SEQ_SAR
% Comments :
%------------------------------------------------------------------------------
tff(array_type,type,
array: $tType ).
tff(read_type,type,
read: ( array * $int ) > $int ).
tff(write_type,type,
write: ( array * $int * $int ) > array ).
tff(ax1,axiom,
! [U: array,V: $int,W: $int] : ( read(write(U,V,W),V) = W ) ).
tff(ax2,axiom,
! [X: array,Y: $int,Z: $int,X1: $int] :
( ( Y = Z )
| ( read(write(X,Y,X1),Z) = read(X,Z) ) ) ).
%------------------------------------------------------------------------------
./DAT002=1.ax
%------------------------------------------------------------------------------
% File : DAT002=1 : TPTP v8.2.0. Released v5.0.0.
% Domain : Data Structures
% Axioms : Integer collections with counting
% Version : [Wal10] axioms.
% English :
% Refs : [PW06] Prevosto & Waldmann (2006), SPASS+T
% : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe
% Source : [Wal10]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 1 unt; 1 typ; 0 def)
% Number of atoms : 20 ( 7 equ)
% Maximal formula atoms : 2 ( 2 avg)
% Number of connectives : 8 ( 2 ~; 0 |; 0 &)
% ( 5 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of FOOLs : 7 ( 7 fml; 0 var)
% Number arithmetic : 12 ( 1 atm; 2 fun; 4 num; 5 var)
% Number of types : 1 ( 0 usr; 1 ari)
% Number of type conns : 1 ( 1 >; 0 *; 0 +; 0 <<)
% Number of predicates : 7 ( 5 usr; 2 prp; 0-2 aty)
% Number of functors : 5 ( 1 usr; 2 con; 0-2 aty)
% Number of variables : 12 ( 12 !; 0 ?; 12 :)
% SPC : TFF_SAT_RFO_SEQ_SAR
% Comments : Requires DAT002=0
%------------------------------------------------------------------------------
tff(count_type,type,
count: collection > $int ).
tff(ax1,axiom,
! [X6: collection] : $greatereq(count(X6),0) ).
tff(ax2,axiom,
! [X7: collection] :
( ( X7 = empty )
<=> ( count(X7) = 0 ) ) ).
tff(ax3,axiom,
! [X8: $int,X9: collection] :
( ~ in(X8,X9)
<=> ( count(add(X8,X9)) = $sum(count(X9),1) ) ) ).
tff(ax4,axiom,
! [X10: $int,X11: collection] :
( in(X10,X11)
<=> ( count(add(X10,X11)) = count(X11) ) ) ).
tff(ax5,axiom,
! [X12: $int,X13: collection] :
( in(X12,X13)
<=> ( count(remove(X12,X13)) = $difference(count(X13),1) ) ) ).
tff(ax6,axiom,
! [X14: $int,X15: collection] :
( ~ in(X14,X15)
<=> ( count(remove(X14,X15)) = count(X15) ) ) ).
tff(ax7,axiom,
! [X16: $int,X17: collection] :
( in(X16,X17)
=> ( X17 = add(X16,remove(X16,X17)) ) ) ).
%------------------------------------------------------------------------------
./DAT002_0.ax
%------------------------------------------------------------------------------
% File : DAT002_0 : TPTP v8.2.0. Released v5.0.0.
% Domain : Data Structures
% Axioms : Integer collections
% Version : [Wal10] axioms.
% English :
% Refs : [PW06] Prevosto & Waldmann (2006), SPASS+T
% : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe
% Source : [Wal10]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 10 ( 3 unt; 5 typ; 0 def)
% Number of atoms : 9 ( 2 equ)
% Maximal formula atoms : 3 ( 0 avg)
% Number of connectives : 7 ( 3 ~; 1 |; 1 &)
% ( 2 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number arithmetic : 7 ( 0 atm; 0 fun; 0 num; 7 var)
% Number of types : 3 ( 1 usr; 1 ari)
% Number of type conns : 6 ( 3 >; 3 *; 0 +; 0 <<)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 11 ( 11 !; 0 ?; 11 :)
% SPC : TFF_SAT_RFO_SEQ_SAR
% Comments :
%------------------------------------------------------------------------------
tff(collection_type,type,
collection: $tType ).
tff(empty_type,type,
empty: collection ).
tff(add_type,type,
add: ( $int * collection ) > collection ).
tff(remove_type,type,
remove: ( $int * collection ) > collection ).
tff(in_type,type,
in: ( $int * collection ) > $o ).
tff(ax1,axiom,
! [U: $int] : ~ in(U,empty) ).
tff(ax2,axiom,
! [V: $int,W: collection] : in(V,add(V,W)) ).
tff(ax3,axiom,
! [X: $int,Y: collection] : ~ in(X,remove(X,Y)) ).
tff(ax4,axiom,
! [Z: $int,X1: collection,X2: $int] :
( ( in(Z,X1)
| ( Z = X2 ) )
<=> in(Z,add(X2,X1)) ) ).
tff(ax5,axiom,
! [X3: $int,X4: collection,X5: $int] :
( ( in(X3,X4)
& ( X3 != X5 ) )
<=> in(X3,remove(X5,X4)) ) ).
%------------------------------------------------------------------------------
./DAT003_0.ax
%------------------------------------------------------------------------------
% File : DAT003_0 : TPTP v8.2.0. Released v5.0.0.
% Domain : Data Structures
% Axioms : Pointer data types
% Version : [Wal10] axioms.
% English :
% Refs : [PW06] Prevosto & Waldmann (2006), SPASS+T
% : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe
% Source : [Wal10]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 20 ( 0 unt; 7 typ; 0 def)
% Number of atoms : 31 ( 6 equ)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 27 ( 9 ~; 0 |; 5 &)
% ( 0 <=>; 13 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 4 avg)
% Maximal term depth : 4 ( 2 avg)
% Number arithmetic : 5 ( 1 atm; 1 fun; 3 num; 0 var)
% Number of types : 3 ( 1 usr; 1 ari)
% Number of type conns : 6 ( 6 >; 0 *; 0 +; 0 <<)
% Number of predicates : 3 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 8 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 13 ( 13 !; 0 ?; 13 :)
% SPC : TFF_SAT_RFO_SEQ_SAR
% Comments :
%------------------------------------------------------------------------------
tff(record_type,type,
record: $tType ).
tff(length_type,type,
length: record > $int ).
tff(next_type,type,
next: record > record ).
tff(data_type,type,
data: record > $int ).
tff(split1_type,type,
split1: record > record ).
tff(split2_type,type,
split2: record > record ).
tff(isrecord_type,type,
isrecord: record > $o ).
tff(ax1,axiom,
! [U: record] :
( ~ isrecord(U)
=> ( length(U) = 0 ) ) ).
tff(ax2,axiom,
! [U: record] :
( isrecord(U)
=> $greatereq(length(U),1) ) ).
tff(ax3,axiom,
! [U: record] :
( isrecord(U)
=> ( length(U) = $sum(length(next(U)),1) ) ) ).
tff(ax4,axiom,
! [U: record] :
( ~ isrecord(U)
=> ~ isrecord(split1(U)) ) ).
tff(ax5,axiom,
! [U: record] :
( isrecord(U)
=> isrecord(split1(U)) ) ).
tff(ax6,axiom,
! [U: record] :
( isrecord(U)
=> ( data(split1(U)) = data(U) ) ) ).
tff(ax7,axiom,
! [U: record] :
( ( isrecord(U)
& ~ isrecord(next(U)) )
=> ~ isrecord(next(split1(U))) ) ).
tff(ax8,axiom,
! [U: record] :
( ( isrecord(U)
& isrecord(next(U)) )
=> ( next(split1(U)) = split1(next(next(U))) ) ) ).
tff(ax9,axiom,
! [U: record] :
( ~ isrecord(U)
=> ~ isrecord(split2(U)) ) ).
tff(ax10,axiom,
! [U: record] :
( ~ isrecord(next(U))
=> ~ isrecord(split2(U)) ) ).
tff(ax11,axiom,
! [U: record] :
( ( isrecord(U)
& isrecord(next(U)) )
=> isrecord(split2(U)) ) ).
tff(ax12,axiom,
! [U: record] :
( ( isrecord(U)
& isrecord(next(U)) )
=> ( data(split2(U)) = data(next(U)) ) ) ).
tff(ax13,axiom,
! [U: record] :
( ( isrecord(U)
& isrecord(next(U)) )
=> ( next(split2(U)) = split2(next(next(U))) ) ) ).
%------------------------------------------------------------------------------
./DAT004_0.ax
%------------------------------------------------------------------------------
% File : DAT004_0 : TPTP v8.2.0. Released v5.5.0.
% Domain : Data Structures
% Axioms : Array data types
% Version : [KIV] axioms.
% English :
% Refs : [Rei99] Reif (1999), Email to Geoff Sutcliffe
% Source : [Rei99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 11 ( 3 unt; 6 typ; 0 def)
% Number of atoms : 7 ( 7 equ)
% Maximal formula atoms : 2 ( 0 avg)
% Number of connectives : 3 ( 1 ~; 0 |; 0 &)
% ( 1 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 3 ( 1 avg)
% Number arithmetic : 6 ( 0 atm; 0 fun; 0 num; 6 var)
% Number of types : 3 ( 2 usr; 1 ari)
% Number of type conns : 5 ( 2 >; 3 *; 0 +; 0 <<)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-3 aty)
% Number of variables : 15 ( 15 !; 0 ?; 15 :)
% SPC : TFF_SAT_EQU_ARI
% Comments : From: /home/magenta/KIV/newtppl/case-studies/hashtable/
% specifications/array/
%------------------------------------------------------------------------------
tff(data_type,type,
data: $tType ).
tff(array_type,type,
array: $tType ).
tff(mkarray_type,type,
mkarray: array ).
tff(none_type,type,
none: data ).
tff(put_type,type,
put: ( array * $int * data ) > array ).
tff(get_type,type,
get: ( array * $int ) > data ).
tff(ax_17,axiom,
! [M: $int] : ( get(mkarray,M) = none ) ).
tff(ax_18,axiom,
! [Ar: array,M: $int,D: data] : ( get(put(Ar,M,D),M) = D ) ).
tff(ax_19,axiom,
! [N: $int,D: data,Ar: array,M: $int] :
( ( M != N )
=> ( get(put(Ar,N,D),M) = get(Ar,M) ) ) ).
tff(ax_20,axiom,
! [D2: data,Ar: array,M: $int,D1: data] : ( put(put(Ar,M,D2),M,D1) = put(Ar,M,D1) ) ).
tff(ax_21,axiom,
! [Ar: array,Ar0: array] :
( ( Ar = Ar0 )
<=> ! [N: $int] : ( get(Ar,N) = get(Ar0,N) ) ) ).
%------------------------------------------------------------------------------
./DAT005_0.ax
%------------------------------------------------------------------------------
% File : DAT005_0 : TPTP v8.2.0. Released v5.5.0.
% Domain : Data Structures
% Axioms : Heap data types
% Version : [KIV] axioms.
% English :
% Refs : [Rei99] Reif (1999), Email to Geoff Sutcliffe
% Source : [Rei99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 7 unt; 7 typ; 0 def)
% Number of atoms : 18 ( 11 equ)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 10 ( 3 ~; 2 |; 2 &)
% ( 2 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number arithmetic : 10 ( 0 atm; 1 fun; 2 num; 7 var)
% Number of types : 3 ( 1 usr; 1 ari)
% Number of type conns : 7 ( 5 >; 2 *; 0 +; 0 <<)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 8 ( 5 usr; 3 con; 0-2 aty)
% Number of variables : 21 ( 21 !; 0 ?; 21 :)
% SPC : TFF_SAT_EQU_ARI
% Comments :
%------------------------------------------------------------------------------
tff(heap_type,type,
heap: $tType ).
tff(empty_type,type,
empty: heap ).
tff(get_type,type,
get: heap > heap ).
tff(app_type,type,
app: ( heap * $int ) > heap ).
tff(toop_type,type,
toop: heap > $int ).
tff(length_type,type,
length: heap > $int ).
tff(lsls_type,type,
lsls: ( heap * heap ) > $o ).
tff(ax_17,axiom,
! [N: $int,H: heap] : ( get(app(H,N)) = H ) ).
tff(ax_18,axiom,
! [H: heap,N: $int] : ( toop(app(H,N)) = N ) ).
tff(ax_19,axiom,
! [H: heap,H0: heap,N: $int,N0: $int] :
( ( app(H,N) = app(H0,N0) )
<=> ( ( H = H0 )
& ( N = N0 ) ) ) ).
tff(ax_20,axiom,
! [H: heap,N: $int] : ( empty != app(H,N) ) ).
tff(ax_21,axiom,
! [H: heap] :
( ( H = empty )
| ( H = app(get(H),toop(H)) ) ) ).
tff(ax_22,axiom,
length(empty) = 0 ).
tff(ax_23,axiom,
! [N: $int,H: heap] : ( length(app(H,N)) = $sum(1,length(H)) ) ).
tff(ax_24,axiom,
! [H: heap] : ~ lsls(H,H) ).
tff(ax_25,axiom,
! [H0: heap,H: heap,H1: heap] :
( ( lsls(H,H0)
& lsls(H0,H1) )
=> lsls(H,H1) ) ).
tff(ax_26,axiom,
! [H: heap] : ~ lsls(H,empty) ).
tff(ax_27,axiom,
! [N: $int,H0: heap,H: heap] :
( lsls(H0,app(H,N))
<=> ( ( H0 = H )
| lsls(H0,H) ) ) ).
%------------------------------------------------------------------------------
./DAT006_0.ax
%------------------------------------------------------------------------------
% File : DAT006_0 : TPTP v8.2.0. Released v5.5.0.
% Domain : Data Structures
% Axioms : Tree-heap data types
% Version : [KIV] axioms.
% English :
% Refs : [Rei99] Reif (1999), Email to Geoff Sutcliffe
% Source : [Rei99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 22 ( 8 unt; 8 typ; 0 def)
% Number of atoms : 23 ( 16 equ)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 13 ( 4 ~; 2 |; 2 &)
% ( 2 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number arithmetic : 20 ( 0 atm; 3 fun; 5 num; 12 var)
% Number of types : 3 ( 1 usr; 1 ari)
% Number of type conns : 9 ( 6 >; 3 *; 0 +; 0 <<)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 9 ( 6 usr; 3 con; 0-2 aty)
% Number of variables : 28 ( 28 !; 0 ?; 28 :)
% SPC : TFF_SAT_EQU_ARI
% Comments : From: /home/magenta/KIV/newtppl/case-studies/tree-heap/
% specifications/sel/
%------------------------------------------------------------------------------
tff(heap_type,type,
heap: $tType ).
tff(empty_type,type,
empty: heap ).
tff(toop_type,type,
toop: heap > $int ).
tff(sel_type,type,
sel: ( heap * $int ) > $int ).
tff(length_type,type,
length: heap > $int ).
tff(app_type,type,
app: ( heap * $int ) > heap ).
tff(get_type,type,
get: heap > heap ).
tff(lsls_type,type,
lsls: ( heap * heap ) > $o ).
tff(ax_1,axiom,
! [M: $int] : ( sel(empty,M) = 0 ) ).
tff(ax_2,axiom,
! [H: heap,M: $int,N: $int] :
( ( M = $sum(1,length(H)) )
=> ( sel(app(H,N),M) = N ) ) ).
tff(ax_3,axiom,
! [N: $int,H: heap,M: $int] :
( ( M != $sum(1,length(H)) )
=> ( sel(app(H,N),M) = sel(H,M) ) ) ).
tff(ax_20,axiom,
! [N: $int,H: heap] : ( get(app(H,N)) = H ) ).
tff(ax_21,axiom,
! [H: heap,N: $int] : ( toop(app(H,N)) = N ) ).
tff(ax_22,axiom,
! [H: heap,H0: heap,N: $int,N0: $int] :
( ( app(H,N) = app(H0,N0) )
<=> ( ( H = H0 )
& ( N = N0 ) ) ) ).
tff(ax_23,axiom,
! [H: heap,N: $int] : ( empty != app(H,N) ) ).
tff(ax_24,axiom,
! [H: heap] :
( ( H = empty )
| ( H = app(get(H),toop(H)) ) ) ).
tff(ax_25,axiom,
length(empty) = 0 ).
tff(ax_26,axiom,
! [N: $int,H: heap] : ( length(app(H,N)) = $sum(1,length(H)) ) ).
tff(ax_27,axiom,
! [H: heap] : ~ lsls(H,H) ).
tff(ax_28,axiom,
! [H0: heap,H: heap,H1: heap] :
( ( lsls(H,H0)
& lsls(H0,H1) )
=> lsls(H,H1) ) ).
tff(ax_29,axiom,
! [H: heap] : ~ lsls(H,empty) ).
tff(ax_30,axiom,
! [N: $int,H0: heap,H: heap] :
( lsls(H0,app(H,N))
<=> ( ( H0 = H )
| lsls(H0,H) ) ) ).
%------------------------------------------------------------------------------
Field Theory
./FLD001-0.ax
%--------------------------------------------------------------------------
% File : FLD001-0 : TPTP v8.2.0. Released .0.
% Domain : Field Theory (Ordered fields)
% Axioms : Ordered field axioms (axiom formulation glxx)
% Version : [Dra93] axioms : Especial.
% English :
% Refs : [Dra93] Draeger (1993), Anwendung des Theorembeweisers SETHEO
% Source : [Dra93]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 27 ( 3 unt; 3 nHn; 27 RR)
% Number of literals : 73 ( 0 equ; 44 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 1-2 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-2 aty)
% Number of variables : 50 ( 0 sgn)
% SPC :
% Comments : The missing equality axioms can be derived.
% : Currently it is unknown if this axiomatization is complete.
% It is definitely tuned for SETHEO.
% Bugfixes : .0 - Added different_identities clause.
%--------------------------------------------------------------------------
cnf(associativity_addition,axiom,
( equalish(add(X,add(Y,Z)),add(add(X,Y),Z))
| ~ defined(X)
| ~ defined(Y)
| ~ defined(Z) ) ).
cnf(existence_of_identity_addition,axiom,
( equalish(add(additive_identity,X),X)
| ~ defined(X) ) ).
cnf(existence_of_inverse_addition,axiom,
( equalish(add(X,additive_inverse(X)),additive_identity)
| ~ defined(X) ) ).
cnf(commutativity_addition,axiom,
( equalish(add(X,Y),add(Y,X))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(associativity_multiplication,axiom,
( equalish(multiply(X,multiply(Y,Z)),multiply(multiply(X,Y),Z))
| ~ defined(X)
| ~ defined(Y)
| ~ defined(Z) ) ).
cnf(existence_of_identity_multiplication,axiom,
( equalish(multiply(multiplicative_identity,X),X)
| ~ defined(X) ) ).
cnf(existence_of_inverse_multiplication,axiom,
( equalish(multiply(X,multiplicative_inverse(X)),multiplicative_identity)
| ~ defined(X)
| equalish(X,additive_identity) ) ).
cnf(commutativity_multiplication,axiom,
( equalish(multiply(X,Y),multiply(Y,X))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(distributivity,axiom,
( equalish(add(multiply(X,Z),multiply(Y,Z)),multiply(add(X,Y),Z))
| ~ defined(X)
| ~ defined(Y)
| ~ defined(Z) ) ).
cnf(well_definedness_of_addition,axiom,
( defined(add(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(well_definedness_of_additive_identity,axiom,
defined(additive_identity) ).
cnf(well_definedness_of_additive_inverse,axiom,
( defined(additive_inverse(X))
| ~ defined(X) ) ).
cnf(well_definedness_of_multiplication,axiom,
( defined(multiply(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(well_definedness_of_multiplicative_identity,axiom,
defined(multiplicative_identity) ).
cnf(well_definedness_of_multiplicative_inverse,axiom,
( defined(multiplicative_inverse(X))
| ~ defined(X)
| equalish(X,additive_identity) ) ).
cnf(antisymmetry_of_order_relation,axiom,
( equalish(X,Y)
| ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,X) ) ).
cnf(transitivity_of_order_relation,axiom,
( less_or_equal(X,Z)
| ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,Z) ) ).
cnf(totality_of_order_relation,axiom,
( less_or_equal(X,Y)
| less_or_equal(Y,X)
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(compatibility_of_order_relation_and_addition,axiom,
( less_or_equal(add(X,Z),add(Y,Z))
| ~ defined(Z)
| ~ less_or_equal(X,Y) ) ).
cnf(compatibility_of_order_relation_and_multiplication,axiom,
( less_or_equal(additive_identity,multiply(Y,Z))
| ~ less_or_equal(additive_identity,Y)
| ~ less_or_equal(additive_identity,Z) ) ).
cnf(reflexivity_of_equality,axiom,
( equalish(X,X)
| ~ defined(X) ) ).
cnf(symmetry_of_equality,axiom,
( equalish(X,Y)
| ~ equalish(Y,X) ) ).
cnf(transitivity_of_equality,axiom,
( equalish(X,Z)
| ~ equalish(X,Y)
| ~ equalish(Y,Z) ) ).
cnf(compatibility_of_equality_and_addition,axiom,
( equalish(add(X,Z),add(Y,Z))
| ~ defined(Z)
| ~ equalish(X,Y) ) ).
cnf(compatibility_of_equality_and_multiplication,axiom,
( equalish(multiply(X,Z),multiply(Y,Z))
| ~ defined(Z)
| ~ equalish(X,Y) ) ).
cnf(compatibility_of_equality_and_order_relation,axiom,
( less_or_equal(Y,Z)
| ~ less_or_equal(X,Z)
| ~ equalish(X,Y) ) ).
cnf(different_identities,axiom,
~ equalish(additive_identity,multiplicative_identity) ).
%--------------------------------------------------------------------------
./FLD002-0.ax
%--------------------------------------------------------------------------
% File : FLD002-0 : TPTP v8.2.0. Released .0.
% Domain : Field Theory (Ordered fields)
% Axioms : Ordered field axioms (axiom formulation re)
% Version : [Dra93] axioms : Especial.
% English :
% Refs : [Dra93] Draeger (1993), Anwendung des Theorembeweisers SETHEO
% Source : [Dra93]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 26 ( 3 unt; 3 nHn; 26 RR)
% Number of literals : 77 ( 0 equ; 49 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-2 aty)
% Number of variables : 73 ( 0 sgn)
% SPC :
% Comments : The missing equality axioms can be derived.
% : Currently it is unknown if this axiomatization is complete.
% It is definitely tuned for SETHEO.
% Bugfixes : .0 - Added different_identities clause.
%--------------------------------------------------------------------------
cnf(associativity_addition_1,axiom,
( sum(X,V,W)
| ~ sum(X,Y,U)
| ~ sum(Y,Z,V)
| ~ sum(U,Z,W) ) ).
cnf(associativity_addition_2,axiom,
( sum(U,Z,W)
| ~ sum(X,Y,U)
| ~ sum(Y,Z,V)
| ~ sum(X,V,W) ) ).
cnf(existence_of_identity_addition,axiom,
( sum(additive_identity,X,X)
| ~ defined(X) ) ).
cnf(existence_of_inverse_addition,axiom,
( sum(additive_inverse(X),X,additive_identity)
| ~ defined(X) ) ).
cnf(commutativity_addition,axiom,
( sum(Y,X,Z)
| ~ sum(X,Y,Z) ) ).
cnf(associativity_multiplication_1,axiom,
( product(X,V,W)
| ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W) ) ).
cnf(associativity_multiplication_2,axiom,
( product(U,Z,W)
| ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W) ) ).
cnf(existence_of_identity_multiplication,axiom,
( product(multiplicative_identity,X,X)
| ~ defined(X) ) ).
cnf(existence_of_inverse_multiplication,axiom,
( product(multiplicative_inverse(X),X,multiplicative_identity)
| sum(additive_identity,X,additive_identity)
| ~ defined(X) ) ).
cnf(commutativity_multiplication,axiom,
( product(Y,X,Z)
| ~ product(X,Y,Z) ) ).
cnf(distributivity_1,axiom,
( sum(C,D,B)
| ~ sum(X,Y,A)
| ~ product(A,Z,B)
| ~ product(X,Z,C)
| ~ product(Y,Z,D) ) ).
cnf(distributivity_2,axiom,
( product(A,Z,B)
| ~ sum(X,Y,A)
| ~ product(X,Z,C)
| ~ product(Y,Z,D)
| ~ sum(C,D,B) ) ).
cnf(well_definedness_of_addition,axiom,
( defined(add(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(well_definedness_of_additive_identity,axiom,
defined(additive_identity) ).
cnf(well_definedness_of_additive_inverse,axiom,
( defined(additive_inverse(X))
| ~ defined(X) ) ).
cnf(well_definedness_of_multiplication,axiom,
( defined(multiply(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(well_definedness_of_multiplicative_identity,axiom,
defined(multiplicative_identity) ).
cnf(well_definedness_of_multiplicative_inverse,axiom,
( defined(multiplicative_inverse(X))
| ~ defined(X)
| sum(additive_identity,X,additive_identity) ) ).
cnf(totality_of_addition,axiom,
( sum(X,Y,add(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(totality_of_multiplication,axiom,
( product(X,Y,multiply(X,Y))
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(antisymmetry_of_order_relation,axiom,
( sum(additive_identity,X,Y)
| ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,X) ) ).
cnf(transitivity_of_order_relation,axiom,
( less_or_equal(X,Z)
| ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,Z) ) ).
cnf(totality_of_order_relation,axiom,
( less_or_equal(X,Y)
| less_or_equal(Y,X)
| ~ defined(X)
| ~ defined(Y) ) ).
cnf(compatibility_of_order_relation_and_addition,axiom,
( less_or_equal(U,V)
| ~ less_or_equal(X,Y)
| ~ sum(X,Z,U)
| ~ sum(Y,Z,V) ) ).
cnf(compatibility_of_order_relation_and_multiplication,axiom,
( less_or_equal(additive_identity,Z)
| ~ less_or_equal(additive_identity,X)
| ~ less_or_equal(additive_identity,Y)
| ~ product(X,Y,Z) ) ).
cnf(different_identities,axiom,
~ sum(additive_identity,additive_identity,multiplicative_identity) ).
%--------------------------------------------------------------------------
Geometry
./GEO001-0.ax
%--------------------------------------------------------------------------
% File : GEO001-0 : TPTP v8.2.0. Bugfixed v2.5.0
% Domain : Geometry (Tarskian)
% Axioms : Tarski geometry axioms
% Version : [MOW76] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 20 ( 6 unt; 6 nHn; 17 RR)
% Number of literals : 64 ( 8 equ; 38 neg)
% Maximal clause size : 8 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-4 aty)
% Number of functors : 8 ( 8 usr; 3 con; 0-6 aty)
% Number of variables : 79 ( 3 sgn)
% SPC :
% Comments : These axioms are also used in [Wos88], p.206.
% : outer_pasch : Skolem function arising from Outer Pasch Axiom (A7)
% euclid1 : Skolem function arising from Euclid's Axiom (A8)
% euclid2 : Skolem function arising from Euclid's Axiom (A8)
% extend : Skolem function from Segment Construction (A10)
% cont : Skolem function from Weakened Elementary Continuity (A13')
% Bugfixes : v2.5.0 - Fixed clause continuity1.
%--------------------------------------------------------------------------
cnf(identity_for_betweeness,axiom,
( ~ between(X,Y,X)
| X = Y ) ).
cnf(transitivity_for_betweeness,axiom,
( ~ between(X,Y,V)
| ~ between(Y,Z,V)
| between(X,Y,Z) ) ).
cnf(connectivity_for_betweeness,axiom,
( ~ between(X,Y,Z)
| ~ between(X,Y,V)
| X = Y
| between(X,Z,V)
| between(X,V,Z) ) ).
cnf(reflexivity_for_equidistance,axiom,
equidistant(X,Y,Y,X) ).
cnf(identity_for_equidistance,axiom,
( ~ equidistant(X,Y,Z,Z)
| X = Y ) ).
cnf(transitivity_for_equidistance,axiom,
( ~ equidistant(X,Y,Z,V)
| ~ equidistant(X,Y,V2,W)
| equidistant(Z,V,V2,W) ) ).
cnf(outer_pasch1,axiom,
( ~ between(X,W,V)
| ~ between(Y,V,Z)
| between(X,outer_pasch(W,X,Y,Z,V),Y) ) ).
cnf(outer_pasch2,axiom,
( ~ between(X,W,V)
| ~ between(Y,V,Z)
| between(Z,W,outer_pasch(W,X,Y,Z,V)) ) ).
cnf(euclid1,axiom,
( ~ between(X,V,W)
| ~ between(Y,V,Z)
| X = V
| between(X,Z,euclid1(W,X,Y,Z,V)) ) ).
cnf(euclid2,axiom,
( ~ between(X,V,W)
| ~ between(Y,V,Z)
| X = V
| between(X,Y,euclid2(W,X,Y,Z,V)) ) ).
cnf(euclid3,axiom,
( ~ between(X,V,W)
| ~ between(Y,V,Z)
| X = V
| between(euclid1(W,X,Y,Z,V),W,euclid2(W,X,Y,Z,V)) ) ).
cnf(outer_five_segment,axiom,
( ~ equidistant(X,Y,X1,Y1)
| ~ equidistant(Y,Z,Y1,Z1)
| ~ equidistant(X,V,X1,V1)
| ~ equidistant(Y,V,Y1,V1)
| ~ between(X,Y,Z)
| ~ between(X1,Y1,Z1)
| X = Y
| equidistant(Z,V,Z1,V1) ) ).
cnf(segment_construction1,axiom,
between(X,Y,extension(X,Y,W,V)) ).
cnf(segment_construction2,axiom,
equidistant(Y,extension(X,Y,W,V),W,V) ).
cnf(lower_dimension1,axiom,
~ between(lower_dimension_point_1,lower_dimension_point_2,lower_dimension_point_3) ).
cnf(lower_dimension2,axiom,
~ between(lower_dimension_point_2,lower_dimension_point_3,lower_dimension_point_1) ).
cnf(lower_dimension3,axiom,
~ between(lower_dimension_point_3,lower_dimension_point_1,lower_dimension_point_2) ).
cnf(upper_dimension,axiom,
( ~ equidistant(X,W,X,V)
| ~ equidistant(Y,W,Y,V)
| ~ equidistant(Z,W,Z,V)
| between(X,Y,Z)
| between(Y,Z,X)
| between(Z,X,Y)
| W = V ) ).
cnf(continuity1,axiom,
( ~ equidistant(V,X,V,X1)
| ~ equidistant(V,Z,V,Z1)
| ~ between(V,X,Z)
| ~ between(X,Y,Z)
| equidistant(V,Y,V,continuous(X,Y,Z,X1,Z1,V)) ) ).
cnf(continuity2,axiom,
( ~ equidistant(V,X,V,X1)
| ~ equidistant(V,Z,V,Z1)
| ~ between(V,X,Z)
| ~ between(X,Y,Z)
| between(X1,continuous(X,Y,Z,X1,Z1,V),Z1) ) ).
%--------------------------------------------------------------------------
./GEO001-1.ax
%--------------------------------------------------------------------------
% File : GEO001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Tarskian)
% Axioms : Colinearity axioms for the GEO001 geometry axioms
% Version : [MOW76] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 0 unt; 1 nHn; 4 RR)
% Number of literals : 10 ( 0 equ; 4 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 3-3 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 12 ( 0 sgn)
% SPC :
% Comments : Requires GEO001-0.ax
%--------------------------------------------------------------------------
cnf(colinearity1,axiom,
( ~ colinear(X,Y,Z)
| between(X,Y,Z)
| between(Y,X,Z)
| between(X,Z,Y) ) ).
cnf(colinearity2,axiom,
( ~ between(X,Y,Z)
| colinear(X,Y,Z) ) ).
cnf(colinearity3,axiom,
( ~ between(Y,X,Z)
| colinear(X,Y,Z) ) ).
cnf(colinearity4,axiom,
( ~ between(X,Z,Y)
| colinear(X,Y,Z) ) ).
%--------------------------------------------------------------------------
./GEO002-0.ax
%--------------------------------------------------------------------------
% File : GEO002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Tarskian)
% Axioms : Tarski geometry axioms
% Version : [Qua89] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Qua89] Quaife (1989), Automated Development of Tarski's Geome
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 18 ( 6 unt; 5 nHn; 15 RR)
% Number of literals : 56 ( 7 equ; 34 neg)
% Maximal clause size : 8 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-4 aty)
% Number of functors : 8 ( 8 usr; 3 con; 0-6 aty)
% Number of variables : 71 ( 3 sgn)
% SPC :
% Comments : See [Qua89] p.100, for details of the differences from the
% [MOW76] axioms.
% : Skolem functions are:
% inner_pasch : From Inner Pasch Axiom (A7)
% euclid1 : From Euclid's Axiom (A8)
% euclid2 : From Euclid's Axiom (A8)
% extend : From the Segment Construction Axiom (A10)
% continuous : From the Weakened form of the Elementary
% Continuity Axiom (A13')
%--------------------------------------------------------------------------
%----A1 - Reflexivity axiom for equidistance
cnf(reflexivity_for_equidistance,axiom,
equidistant(X,Y,Y,X) ).
%----A2 - Transitivity axiom for equidistance
cnf(transitivity_for_equidistance,axiom,
( ~ equidistant(X,Y,Z,V)
| ~ equidistant(X,Y,V2,W)
| equidistant(Z,V,V2,W) ) ).
%----A3 Indentity axiom for equidistance
cnf(identity_for_equidistance,axiom,
( ~ equidistant(X,Y,Z,Z)
| X = Y ) ).
%----A4 - Segment construction axiom, two clauses.
%----A4.1
cnf(segment_construction1,axiom,
between(X,Y,extension(X,Y,W,V)) ).
%----A4.2
cnf(segment_construction2,axiom,
equidistant(Y,extension(X,Y,W,V),W,V) ).
%----A5 - Outer five-segment axiom
cnf(outer_five_segment,axiom,
( ~ equidistant(X,Y,X1,Y1)
| ~ equidistant(Y,Z,Y1,Z1)
| ~ equidistant(X,V,X1,V1)
| ~ equidistant(Y,V,Y1,V1)
| ~ between(X,Y,Z)
| ~ between(X1,Y1,Z1)
| X = Y
| equidistant(Z,V,Z1,V1) ) ).
%----A6 - Identity axiom for betweenness
cnf(identity_for_betweeness,axiom,
( ~ between(X,Y,X)
| X = Y ) ).
%----A7 - Inner Pasch axiom, two clauses.
%----A7.1
cnf(inner_pasch1,axiom,
( ~ between(U,V,W)
| ~ between(Y,X,W)
| between(V,inner_pasch(U,V,W,X,Y),Y) ) ).
%----A7.2
cnf(inner_pasch2,axiom,
( ~ between(U,V,W)
| ~ between(Y,X,W)
| between(X,inner_pasch(U,V,W,X,Y),U) ) ).
%----A8 - Lower dimension axiom, three clauses.
%----A8.1
cnf(lower_dimension1,axiom,
~ between(lower_dimension_point_1,lower_dimension_point_2,lower_dimension_point_3) ).
%----A8.2
cnf(lower_dimension2,axiom,
~ between(lower_dimension_point_2,lower_dimension_point_3,lower_dimension_point_1) ).
%----A8.3
cnf(lower_dimension3,axiom,
~ between(lower_dimension_point_3,lower_dimension_point_1,lower_dimension_point_2) ).
%----A9 - Upper dimension axiom
cnf(upper_dimension,axiom,
( ~ equidistant(X,W,X,V)
| ~ equidistant(Y,W,Y,V)
| ~ equidistant(Z,W,Z,V)
| between(X,Y,Z)
| between(Y,Z,X)
| between(Z,X,Y)
| W = V ) ).
%----A10 - Euclid's axiom, three clauses.
%----A10.1
cnf(euclid1,axiom,
( ~ between(U,W,Y)
| ~ between(V,W,X)
| U = W
| between(U,V,euclid1(U,V,W,X,Y)) ) ).
%----A10.2
cnf(euclid2,axiom,
( ~ between(U,W,Y)
| ~ between(V,W,X)
| U = W
| between(U,X,euclid2(U,V,W,X,Y)) ) ).
%----A10.3
cnf(euclid3,axiom,
( ~ between(U,W,Y)
| ~ between(V,W,X)
| U = W
| between(euclid1(U,V,W,X,Y),Y,euclid2(U,V,W,X,Y)) ) ).
%----A11 - Weakened continuity axiom, two clauses.
%----A11.1
cnf(continuity1,axiom,
( ~ equidistant(U,V,U,V1)
| ~ equidistant(U,X,U,X1)
| ~ between(U,V,X)
| ~ between(V,W,X)
| between(V1,continuous(U,V,V1,W,X,X1),X1) ) ).
%----A11.2
cnf(continuity2,axiom,
( ~ equidistant(U,V,U,V1)
| ~ equidistant(U,X,U,X1)
| ~ between(U,V,X)
| ~ between(V,W,X)
| equidistant(U,W,U,continuous(U,V,V1,W,X,X1)) ) ).
%--------------------------------------------------------------------------
./GEO002-1.ax
%--------------------------------------------------------------------------
% File : GEO002-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Tarskian)
% Axioms : Colinearity axioms for the GEO002 geometry axioms
% Version : [Qua89] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Qua89] Quaife (1989), Automated Development of Tarski's Geome
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 0 unt; 1 nHn; 4 RR)
% Number of literals : 10 ( 0 equ; 4 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 3-3 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 12 ( 0 sgn)
% SPC :
% Comments : Requires GEO002-0.ax
% : This version differs from the originals only in the ordering
% of betweenness arguments. The equivalence is obvious from the
% symmetry of betweenness.
%--------------------------------------------------------------------------
cnf(colinearity1,axiom,
( ~ between(X,Y,Z)
| colinear(X,Y,Z) ) ).
cnf(colinearity2,axiom,
( ~ between(Y,Z,X)
| colinear(X,Y,Z) ) ).
cnf(colinearity3,axiom,
( ~ between(Z,X,Y)
| colinear(X,Y,Z) ) ).
cnf(colinearity4,axiom,
( ~ colinear(X,Y,Z)
| between(X,Y,Z)
| between(Y,Z,X)
| between(Z,X,Y) ) ).
%--------------------------------------------------------------------------
./GEO002-2.ax
%--------------------------------------------------------------------------
% File : GEO002-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Tarskian)
% Axioms : Reflection axioms for the GEO002 geometry axioms
% Version : [Qua89] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Qua89] Quaife (1989), Automated Development of Tarski's Geome
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 1 unt; 0 nHn; 0 RR)
% Number of literals : 1 ( 1 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-4 aty)
% Number of variables : 2 ( 0 sgn)
% SPC :
% Comments : Requires GEO002-0.ax
%--------------------------------------------------------------------------
cnf(reflection,axiom,
reflection(U,V) = extension(U,V,U,V) ).
%--------------------------------------------------------------------------
./GEO002-3.ax
%--------------------------------------------------------------------------
% File : GEO002-3 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Tarskian)
% Axioms : Insertion axioms for the GEO002 geometry axioms
% Version : [Qua89] axioms.
% English :
% Refs : [Tar59] Tarski (1959), What is Elementary Geometry?
% : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Qua89] Quaife (1989), Automated Development of Tarski's Geome
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 1 unt; 0 nHn; 0 RR)
% Number of literals : 1 ( 1 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-4 aty)
% Number of variables : 4 ( 0 sgn)
% SPC :
% Comments : Requires GEO002-0.ax
%--------------------------------------------------------------------------
cnf(insertion,axiom,
insertion(U1,W1,U,V) = extension(extension(W1,U1,lower_dimension_point_1,lower_dimension_point_2),U1,U,V) ).
%--------------------------------------------------------------------------
./GEO003-0.ax
%--------------------------------------------------------------------------
% File : GEO003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Geometry (Hilbert)
% Axioms : Hilbert geometry axioms
% Version : [Ben92] axioms.
% English :
% Refs : [Ben92] Benana992), Recognising Unnecessary Clauses in Res
% Source : [Ben92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 31 ( 1 unt; 18 nHn; 31 RR)
% Number of literals : 174 ( 43 equ; 103 neg)
% Maximal clause size : 16 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 1-3 aty)
% Number of functors : 10 ( 10 usr; 1 con; 0-3 aty)
% Number of variables : 70 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Axiom 1 : For any two distinct points, there is a unique line through
%----them.
cnf(axiom_G1A,axiom,
( on(Z1,line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1B,axiom,
( on(Z2,line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1C,axiom,
( line(line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1D,axiom,
( ~ on(Z1,Y3)
| Z1 = Z2
| ~ on(Z2,Y3)
| Y3 = Y4
| ~ on(Z1,Y4)
| ~ on(Z2,Y4)
| ~ point(Z1)
| ~ point(Z2)
| ~ line(Y3)
| ~ line(Y4) ) ).
%----For any line, there are at least two points on the line.
cnf(axiom_G2A,axiom,
( on(point_1_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G2B,axiom,
( on(point_2_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G2C,axiom,
( point(point_1_on_line(Y1))
| ~ line(Y1) ) ).
cnf(axiom_G2D,axiom,
( point(point_2_on_line(Y1))
| ~ line(Y1) ) ).
cnf(axiom_G2E,axiom,
( point_1_on_line(Y1) != point_2_on_line(Y1)
| ~ line(Y1) ) ).
%----For any line, there is a point not on the line.
cnf(axiom_G3A,axiom,
( ~ on(point_not_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G3B,axiom,
( point(point_not_on_line(Y1))
| ~ line(Y1) ) ).
%----There exists at least one line
cnf(axiom_G4A,axiom,
line(at_least_one_line) ).
%----For any plane there is a point on the plane.
cnf(axiom_G5A,axiom,
( ~ plane(Z1)
| on(point_on_plane(Z1),Z1) ) ).
cnf(axiom_G5B,axiom,
( ~ plane(Z1)
| point(point_on_plane(Z1)) ) ).
%----For any plane there is a point not on the plane.
cnf(axiom_G6A,axiom,
( ~ plane(Z1)
| ~ on(point_not_on_plane(Z1),Z1) ) ).
cnf(axiom_G6B,axiom,
( ~ plane(Z1)
| point(point_not_on_plane(Z1)) ) ).
%----For any three non-collinear points there is a unique plane through
%----them.
cnf(axiom_G7A,axiom,
( on(X1,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7B,axiom,
( on(X2,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7C,axiom,
( on(X3,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7D,axiom,
( plane(plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7E,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3
| ~ on(X1,Z1)
| ~ on(X2,Z1)
| ~ on(X3,Z1)
| ~ plane(Z1)
| ~ on(X1,Z2)
| ~ on(X2,Z2)
| ~ on(X3,Z2)
| ~ plane(Z2)
| Z1 = Z2 ) ).
%----If two points of a line are in the same plane then every point
%----of that line is in the plane.
cnf(axiom_G8A,axiom,
( ~ on(X1,Y1)
| ~ on(X2,Y1)
| ~ on(X1,Z1)
| ~ on(X2,Z1)
| ~ plane(Z1)
| ~ point(X1)
| ~ point(X2)
| ~ line(Y1)
| X1 = X2
| on(Y1,Z1) ) ).
%----If two planes have a point in common they have at least one more
%----point in common.
cnf(axiom_G9A,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ on(X1,Z1)
| ~ on(X1,Z2)
| ~ point(X1)
| on(common_point_on_planes(Z1,Z2,X1),Z1) ) ).
cnf(axiom_G9B,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ on(X1,Z1)
| ~ on(X1,Z2)
| ~ point(X1)
| on(common_point_on_planes(Z1,Z2,X1),Z2) ) ).
cnf(axiom_G9C,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ on(X1,Z1)
| ~ on(X1,Z2)
| ~ point(X1)
| point(common_point_on_planes(Z1,Z2,X1)) ) ).
cnf(axiom_G9D,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ on(X1,Z1)
| ~ on(X1,Z2)
| ~ point(X1)
| X1 != common_point_on_planes(Z1,Z2,X1) ) ).
%----Three distinct points are collinear if and only if there is a line
%----through them.
cnf(axiom_G10A,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| on(X1,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10B,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| on(X2,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10C,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| on(X3,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10D,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| line(line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10E,axiom,
( collinear(X1,X2,X3)
| ~ on(X1,Y)
| ~ on(X2,Y)
| ~ on(X3,Y)
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| ~ line(Y) ) ).
%--------------------------------------------------------------------------
./GEO004+0.ax
%--------------------------------------------------------------------------
% File : GEO004+0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Simple curve axioms
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 16 ( 1 unt; 0 def)
% Number of atoms : 67 ( 10 equ)
% Maximal formula atoms : 12 ( 4 avg)
% Number of connectives : 55 ( 4 ~; 9 |; 21 &)
% ( 9 <=>; 12 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 53 ( 44 !; 9 ?)
% SPC :
% Comments :
%--------------------------------------------------------------------------
fof(part_of_defn,axiom,
! [C,C1] :
( part_of(C1,C)
<=> ! [P] :
( incident_c(P,C1)
=> incident_c(P,C) ) ) ).
fof(sum_defn,axiom,
! [C,C1,C2] :
( C = sum(C1,C2)
<=> ! [Q] :
( incident_c(Q,C)
<=> ( incident_c(Q,C1)
| incident_c(Q,C2) ) ) ) ).
fof(end_point_defn,axiom,
! [P,C] :
( end_point(P,C)
<=> ( incident_c(P,C)
& ! [C1,C2] :
( ( part_of(C1,C)
& part_of(C2,C)
& incident_c(P,C1)
& incident_c(P,C2) )
=> ( part_of(C1,C2)
| part_of(C2,C1) ) ) ) ) ).
fof(inner_point_defn,axiom,
! [P,C] :
( inner_point(P,C)
<=> ( incident_c(P,C)
& ~ end_point(P,C) ) ) ).
fof(meet_defn,axiom,
! [P,C,C1] :
( meet(P,C,C1)
<=> ( incident_c(P,C)
& incident_c(P,C1)
& ! [Q] :
( ( incident_c(Q,C)
& incident_c(Q,C1) )
=> ( end_point(Q,C)
& end_point(Q,C1) ) ) ) ) ).
fof(closed_defn,axiom,
! [C] :
( closed(C)
<=> ~ ? [P] : end_point(P,C) ) ).
fof(open_defn,axiom,
! [C] :
( open(C)
<=> ? [P] : end_point(P,C) ) ).
fof(c1,axiom,
! [C,C1] :
( ( part_of(C1,C)
& C1 != C )
=> open(C1) ) ).
fof(c2,axiom,
! [C,C1,C2,C3] :
( ( part_of(C1,C)
& part_of(C2,C)
& part_of(C3,C)
& ? [P] :
( end_point(P,C1)
& end_point(P,C2)
& end_point(P,C3) ) )
=> ( part_of(C2,C3)
| part_of(C3,C2)
| part_of(C1,C2)
| part_of(C2,C1)
| part_of(C1,C3)
| part_of(C3,C1) ) ) ).
fof(c3,axiom,
! [C] :
? [P] : inner_point(P,C) ).
fof(c4,axiom,
! [C,P] :
( inner_point(P,C)
=> ? [C1,C2] :
( meet(P,C1,C2)
& C = sum(C1,C2) ) ) ).
fof(c5,axiom,
! [C,P,Q,R] :
( ( end_point(P,C)
& end_point(Q,C)
& end_point(R,C) )
=> ( P = Q
| P = R
| Q = R ) ) ).
fof(c6,axiom,
! [C,P] :
( end_point(P,C)
=> ? [Q] :
( end_point(Q,C)
& P != Q ) ) ).
fof(c7,axiom,
! [C,C1,C2,P] :
( ( closed(C)
& meet(P,C1,C2)
& C = sum(C1,C2) )
=> ! [Q] :
( end_point(Q,C1)
=> meet(Q,C1,C2) ) ) ).
fof(c8,axiom,
! [C1,C2] :
( ? [P] : meet(P,C1,C2)
=> ? [C] : C = sum(C1,C2) ) ).
fof(c9,axiom,
! [C,C1] :
( ! [P] :
( incident_c(P,C)
<=> incident_c(P,C1) )
=> C = C1 ) ).
%--------------------------------------------------------------------------
./GEO004+1.ax
%--------------------------------------------------------------------------
% File : GEO004+1 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Betweenness for simple curves
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 1 ( 0 unt; 0 def)
% Number of atoms : 6 ( 1 equ)
% Maximal formula atoms : 6 ( 6 avg)
% Number of connectives : 6 ( 1 ~; 0 |; 4 &)
% ( 1 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 11 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-4 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 5 ( 4 !; 1 ?)
% SPC :
% Comments : Requires GEO004+0.ax
%--------------------------------------------------------------------------
fof(between_c_defn,axiom,
! [C,P,Q,R] :
( between_c(C,P,Q,R)
<=> ( P != R
& ? [Cpp] :
( part_of(Cpp,C)
& end_point(P,Cpp)
& end_point(R,Cpp)
& inner_point(Q,Cpp) ) ) ) ).
%--------------------------------------------------------------------------
./GEO004+2.ax
%--------------------------------------------------------------------------
% File : GEO004+2 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Oriented curves
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 10 ( 1 unt; 0 def)
% Number of atoms : 39 ( 5 equ)
% Maximal formula atoms : 7 ( 3 avg)
% Number of connectives : 32 ( 3 ~; 1 |; 13 &)
% ( 10 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 0 prp; 1-4 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 36 ( 32 !; 4 ?)
% SPC :
% Comments : Requires GEO004+0.ax GEO004+1.ax
%--------------------------------------------------------------------------
fof(between_o_defn,axiom,
! [O,P,Q,R] :
( between_o(O,P,Q,R)
<=> ( ( ordered_by(O,P,Q)
& ordered_by(O,Q,R) )
| ( ordered_by(O,R,Q)
& ordered_by(O,Q,P) ) ) ) ).
fof(start_point_defn,axiom,
! [P,O] :
( start_point(P,O)
<=> ( incident_o(P,O)
& ! [Q] :
( ( P != Q
& incident_o(Q,O) )
=> ordered_by(O,P,Q) ) ) ) ).
fof(finish_point_defn,axiom,
! [P,O] :
( finish_point(P,O)
<=> ( incident_o(P,O)
& ! [Q] :
( ( P != Q
& incident_o(Q,O) )
=> ordered_by(O,Q,P) ) ) ) ).
fof(o1,axiom,
! [O,P,Q] :
( ordered_by(O,P,Q)
=> ( incident_o(P,O)
& incident_o(Q,O) ) ) ).
fof(o2,axiom,
! [O] :
? [C] :
( open(C)
& ! [P] :
( incident_o(P,O)
<=> incident_c(P,C) ) ) ).
fof(o3,axiom,
! [P,Q,R,O] :
( between_o(O,P,Q,R)
<=> ? [C] :
( ! [P] :
( incident_o(P,O)
<=> incident_c(P,C) )
& between_c(C,P,Q,R) ) ) ).
fof(o4,axiom,
! [O] :
? [P] : start_point(P,O) ).
fof(o5,axiom,
! [P,Q,C] :
( ( open(C)
& P != Q
& incident_c(P,C)
& incident_c(Q,C) )
=> ? [O] :
( ! [R] :
( incident_o(R,O)
<=> incident_c(R,C) )
& ordered_by(O,P,Q) ) ) ).
fof(o6,axiom,
! [O1,O2] :
( ! [P,Q] :
( ordered_by(O1,P,Q)
<=> ordered_by(O2,P,Q) )
=> O1 = O2 ) ).
fof(underlying_curve_defn,axiom,
! [C,O] :
( C = underlying_curve(O)
<=> ! [P] :
( incident_o(P,O)
<=> incident_c(P,C) ) ) ).
%--------------------------------------------------------------------------
./GEO004+3.ax
%--------------------------------------------------------------------------
% File : GEO004+3 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Trajectories
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 9 ( 1 unt; 0 def)
% Number of atoms : 20 ( 1 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 12 ( 1 ~; 0 |; 3 &)
% ( 4 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 5 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 24 ( 22 !; 2 ?)
% SPC :
% Comments : Requires GEO004+0.ax GEO004+1.ax GEO004+2.ax
%--------------------------------------------------------------------------
fof(connect_defn,axiom,
! [X,Y,P] :
( connect(X,Y,P)
<=> once(at_the_same_time(at(X,P),at(Y,P))) ) ).
fof(symmetry_of_at_the_same_time,axiom,
! [A,B] :
( once(at_the_same_time(A,B))
<=> once(at_the_same_time(B,A)) ) ).
fof(assciativity_of_at_the_same_time,axiom,
! [A,B,C] :
( once(at_the_same_time(at_the_same_time(A,B),C))
<=> once(at_the_same_time(A,at_the_same_time(B,C))) ) ).
fof(idempotence_of_at_the_same_time,axiom,
! [A] :
( once(A)
=> once(at_the_same_time(A,A)) ) ).
fof(conjunction_at_the_same_time,axiom,
! [A,B] :
( once(at_the_same_time(A,B))
=> ( once(A)
& once(B) ) ) ).
fof(at_on_trajectory,axiom,
! [X,P] :
( once(at(X,P))
<=> incident_o(P,trajectory_of(X)) ) ).
fof(trajectories_are_oriented_curves,axiom,
! [X] :
? [O] : trajectory_of(X) = O ).
fof(homogeneous_behaviour,axiom,
! [P1,P2,Q1,Q2,X,Y] :
( ( once(at_the_same_time(at(X,P1),at(Y,P2)))
& once(at_the_same_time(at(X,Q1),at(Y,Q2))) )
=> ~ ( ordered_by(trajectory_of(X),P1,Q1)
& ordered_by(trajectory_of(Y),Q2,P2) ) ) ).
fof(localization,axiom,
! [A] :
( once(A)
=> ! [X] :
? [P] : once(at_the_same_time(A,at(X,P))) ) ).
%--------------------------------------------------------------------------
./GEO004-0.ax
%--------------------------------------------------------------------------
% File : GEO004-0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Simple curve axioms
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 48 ( 1 unt; 21 nHn; 43 RR)
% Number of literals : 154 ( 21 equ; 78 neg)
% Maximal clause size : 12 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-3 aty)
% Number of functors : 14 ( 14 usr; 0 con; 1-3 aty)
% Number of variables : 126 ( 10 sgn)
% SPC :
% Comments : Created by tptp2X -f tptp -t clausify:otter GEO004+0.ax
%--------------------------------------------------------------------------
cnf(part_of_defn_1,axiom,
( ~ part_of(A,B)
| ~ incident_c(C,A)
| incident_c(C,B) ) ).
cnf(part_of_defn_2,axiom,
( incident_c(ax0_sk1(A,B),A)
| part_of(A,B) ) ).
cnf(part_of_defn_3,axiom,
( ~ incident_c(ax0_sk1(A,B),B)
| part_of(A,B) ) ).
cnf(sum_defn_4,axiom,
( A != sum(B,C)
| ~ incident_c(D,A)
| incident_c(D,B)
| incident_c(D,C) ) ).
cnf(sum_defn_5,axiom,
( A != sum(B,C)
| ~ incident_c(D,B)
| incident_c(D,A) ) ).
cnf(sum_defn_6,axiom,
( A != sum(B,C)
| ~ incident_c(D,C)
| incident_c(D,A) ) ).
cnf(sum_defn_7,axiom,
( incident_c(ax0_sk2(A,B,C),C)
| incident_c(ax0_sk2(A,B,C),B)
| incident_c(ax0_sk2(A,B,C),A)
| C = sum(B,A) ) ).
cnf(sum_defn_8,axiom,
( incident_c(ax0_sk2(A,B,C),C)
| ~ incident_c(ax0_sk2(A,B,C),C)
| C = sum(B,A) ) ).
cnf(sum_defn_9,axiom,
( ~ incident_c(ax0_sk2(A,B,C),B)
| incident_c(ax0_sk2(A,B,C),B)
| incident_c(ax0_sk2(A,B,C),A)
| C = sum(B,A) ) ).
cnf(sum_defn_10,axiom,
( ~ incident_c(ax0_sk2(A,B,C),A)
| incident_c(ax0_sk2(A,B,C),B)
| incident_c(ax0_sk2(A,B,C),A)
| C = sum(B,A) ) ).
cnf(sum_defn_11,axiom,
( ~ incident_c(ax0_sk2(A,B,C),B)
| ~ incident_c(ax0_sk2(A,B,C),C)
| C = sum(B,A) ) ).
cnf(sum_defn_12,axiom,
( ~ incident_c(ax0_sk2(A,B,C),A)
| ~ incident_c(ax0_sk2(A,B,C),C)
| C = sum(B,A) ) ).
cnf(end_point_defn_13,axiom,
( ~ end_point(A,B)
| incident_c(A,B) ) ).
cnf(end_point_defn_14,axiom,
( ~ end_point(A,B)
| ~ part_of(C,B)
| ~ part_of(D,B)
| ~ incident_c(A,C)
| ~ incident_c(A,D)
| part_of(C,D)
| part_of(D,C) ) ).
cnf(end_point_defn_15,axiom,
( ~ incident_c(A,B)
| part_of(ax0_sk3(B,A),B)
| end_point(A,B) ) ).
cnf(end_point_defn_16,axiom,
( ~ incident_c(A,B)
| part_of(ax0_sk4(B,A),B)
| end_point(A,B) ) ).
cnf(end_point_defn_17,axiom,
( ~ incident_c(A,B)
| incident_c(A,ax0_sk3(B,A))
| end_point(A,B) ) ).
cnf(end_point_defn_18,axiom,
( ~ incident_c(A,B)
| incident_c(A,ax0_sk4(B,A))
| end_point(A,B) ) ).
cnf(end_point_defn_19,axiom,
( ~ incident_c(A,B)
| ~ part_of(ax0_sk3(B,A),ax0_sk4(B,A))
| end_point(A,B) ) ).
cnf(end_point_defn_20,axiom,
( ~ incident_c(A,B)
| ~ part_of(ax0_sk4(B,A),ax0_sk3(B,A))
| end_point(A,B) ) ).
cnf(inner_point_defn_21,axiom,
( ~ inner_point(A,B)
| incident_c(A,B) ) ).
cnf(inner_point_defn_22,axiom,
( ~ inner_point(A,B)
| ~ end_point(A,B) ) ).
cnf(inner_point_defn_23,axiom,
( ~ incident_c(A,B)
| end_point(A,B)
| inner_point(A,B) ) ).
cnf(meet_defn_24,axiom,
( ~ meet(A,B,C)
| incident_c(A,B) ) ).
cnf(meet_defn_25,axiom,
( ~ meet(A,B,C)
| incident_c(A,C) ) ).
cnf(meet_defn_26,axiom,
( ~ meet(A,B,C)
| ~ incident_c(D,B)
| ~ incident_c(D,C)
| end_point(D,B) ) ).
cnf(meet_defn_27,axiom,
( ~ meet(A,B,C)
| ~ incident_c(D,B)
| ~ incident_c(D,C)
| end_point(D,C) ) ).
cnf(meet_defn_28,axiom,
( ~ incident_c(A,B)
| ~ incident_c(A,C)
| incident_c(ax0_sk5(C,B,A),B)
| meet(A,B,C) ) ).
cnf(meet_defn_29,axiom,
( ~ incident_c(A,B)
| ~ incident_c(A,C)
| incident_c(ax0_sk5(C,B,A),C)
| meet(A,B,C) ) ).
cnf(meet_defn_30,axiom,
( ~ incident_c(A,B)
| ~ incident_c(A,C)
| ~ end_point(ax0_sk5(C,B,A),B)
| ~ end_point(ax0_sk5(C,B,A),C)
| meet(A,B,C) ) ).
cnf(closed_defn_31,axiom,
( ~ closed(A)
| ~ end_point(B,A) ) ).
cnf(closed_defn_32,axiom,
( end_point(ax0_sk6(A),A)
| closed(A) ) ).
cnf(open_defn_33,axiom,
( ~ open(A)
| end_point(ax0_sk7(A),A) ) ).
cnf(open_defn_34,axiom,
( ~ end_point(A,B)
| open(B) ) ).
cnf(c1_35,axiom,
( ~ part_of(A,B)
| A = B
| open(A) ) ).
cnf(c2_36,axiom,
( ~ part_of(A,B)
| ~ part_of(C,B)
| ~ part_of(D,B)
| ~ end_point(E,A)
| ~ end_point(E,C)
| ~ end_point(E,D)
| part_of(C,D)
| part_of(D,C)
| part_of(A,C)
| part_of(C,A)
| part_of(A,D)
| part_of(D,A) ) ).
cnf(c3_37,axiom,
inner_point(ax0_sk8(A),A) ).
cnf(c4_38,axiom,
( ~ inner_point(A,B)
| meet(A,ax0_sk9(A,B),ax0_sk10(A,B)) ) ).
cnf(c4_39,axiom,
( ~ inner_point(A,B)
| B = sum(ax0_sk9(A,B),ax0_sk10(A,B)) ) ).
cnf(c5_40,axiom,
( ~ end_point(A,B)
| ~ end_point(C,B)
| ~ end_point(D,B)
| A = C
| A = D
| C = D ) ).
cnf(c6_41,axiom,
( ~ end_point(A,B)
| end_point(ax0_sk11(A,B),B) ) ).
cnf(c6_42,axiom,
( ~ end_point(A,B)
| A != ax0_sk11(A,B) ) ).
cnf(c7_43,axiom,
( ~ closed(A)
| ~ meet(B,C,D)
| A != sum(C,D)
| ~ end_point(E,C)
| meet(E,C,D) ) ).
cnf(c8_44,axiom,
( ~ meet(A,B,C)
| ax0_sk12(C,B) = sum(B,C) ) ).
cnf(c9_45,axiom,
( incident_c(ax0_sk13(A,B),B)
| incident_c(ax0_sk13(A,B),A)
| B = A ) ).
cnf(c9_46,axiom,
( incident_c(ax0_sk13(A,B),B)
| ~ incident_c(ax0_sk13(A,B),B)
| B = A ) ).
cnf(c9_47,axiom,
( ~ incident_c(ax0_sk13(A,B),A)
| incident_c(ax0_sk13(A,B),A)
| B = A ) ).
cnf(c9_48,axiom,
( ~ incident_c(ax0_sk13(A,B),A)
| ~ incident_c(ax0_sk13(A,B),B)
| B = A ) ).
%--------------------------------------------------------------------------
./GEO004-1.ax
%--------------------------------------------------------------------------
% File : GEO004-1 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Betweenness for simple curves
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 1 nHn; 6 RR)
% Number of literals : 16 ( 2 equ; 10 neg)
% Maximal clause size : 6 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-4 aty)
% Number of functors : 1 ( 1 usr; 0 con; 4-4 aty)
% Number of variables : 25 ( 2 sgn)
% SPC :
% Comments : Requires GEO004-0.ax
% : Created by tptp2X -f tptp -t clausify:otter GEO004+1.ax
%--------------------------------------------------------------------------
cnf(between_c_defn_1,axiom,
( ~ between_c(A,B,C,D)
| B != D ) ).
cnf(between_c_defn_2,axiom,
( ~ between_c(A,B,C,D)
| part_of(ax1_sk1(D,C,B,A),A) ) ).
cnf(between_c_defn_3,axiom,
( ~ between_c(A,B,C,D)
| end_point(B,ax1_sk1(D,C,B,A)) ) ).
cnf(between_c_defn_4,axiom,
( ~ between_c(A,B,C,D)
| end_point(D,ax1_sk1(D,C,B,A)) ) ).
cnf(between_c_defn_5,axiom,
( ~ between_c(A,B,C,D)
| inner_point(C,ax1_sk1(D,C,B,A)) ) ).
cnf(between_c_defn_6,axiom,
( A = B
| ~ part_of(C,D)
| ~ end_point(A,C)
| ~ end_point(B,C)
| ~ inner_point(E,C)
| between_c(D,A,E,B) ) ).
%--------------------------------------------------------------------------
./GEO004-2.ax
%--------------------------------------------------------------------------
% File : GEO004-2 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Oriented curves
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 42 ( 2 unt; 20 nHn; 37 RR)
% Number of literals : 129 ( 17 equ; 64 neg)
% Maximal clause size : 6 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 0 prp; 1-4 aty)
% Number of functors : 11 ( 11 usr; 0 con; 1-5 aty)
% Number of variables : 125 ( 5 sgn)
% SPC :
% Comments : Requires GEO004-0.ax GEO004-1.ax
% : Created by tptp2X -f tptp -t clausify:otter GEO004+2.ax
%--------------------------------------------------------------------------
cnf(between_o_defn_1,axiom,
( ~ between_o(A,B,C,D)
| ordered_by(A,B,C)
| ordered_by(A,D,C) ) ).
cnf(between_o_defn_2,axiom,
( ~ between_o(A,B,C,D)
| ordered_by(A,B,C)
| ordered_by(A,C,B) ) ).
cnf(between_o_defn_3,axiom,
( ~ between_o(A,B,C,D)
| ordered_by(A,C,D)
| ordered_by(A,D,C) ) ).
cnf(between_o_defn_4,axiom,
( ~ between_o(A,B,C,D)
| ordered_by(A,C,D)
| ordered_by(A,C,B) ) ).
cnf(between_o_defn_5,axiom,
( ~ ordered_by(A,B,C)
| ~ ordered_by(A,C,D)
| between_o(A,B,C,D) ) ).
cnf(between_o_defn_6,axiom,
( ~ ordered_by(A,B,C)
| ~ ordered_by(A,C,D)
| between_o(A,D,C,B) ) ).
cnf(start_point_defn_7,axiom,
( ~ start_point(A,B)
| incident_o(A,B) ) ).
cnf(start_point_defn_8,axiom,
( ~ start_point(A,B)
| A = C
| ~ incident_o(C,B)
| ordered_by(B,A,C) ) ).
cnf(start_point_defn_9,axiom,
( ~ incident_o(A,B)
| A != ax2_sk1(B,A)
| start_point(A,B) ) ).
cnf(start_point_defn_10,axiom,
( ~ incident_o(A,B)
| incident_o(ax2_sk1(B,A),B)
| start_point(A,B) ) ).
cnf(start_point_defn_11,axiom,
( ~ incident_o(A,B)
| ~ ordered_by(B,A,ax2_sk1(B,A))
| start_point(A,B) ) ).
cnf(finish_point_defn_12,axiom,
( ~ finish_point(A,B)
| incident_o(A,B) ) ).
cnf(finish_point_defn_13,axiom,
( ~ finish_point(A,B)
| A = C
| ~ incident_o(C,B)
| ordered_by(B,C,A) ) ).
cnf(finish_point_defn_14,axiom,
( ~ incident_o(A,B)
| A != ax2_sk2(B,A)
| finish_point(A,B) ) ).
cnf(finish_point_defn_15,axiom,
( ~ incident_o(A,B)
| incident_o(ax2_sk2(B,A),B)
| finish_point(A,B) ) ).
cnf(finish_point_defn_16,axiom,
( ~ incident_o(A,B)
| ~ ordered_by(B,ax2_sk2(B,A),A)
| finish_point(A,B) ) ).
cnf(o1_17,axiom,
( ~ ordered_by(A,B,C)
| incident_o(B,A) ) ).
cnf(o1_18,axiom,
( ~ ordered_by(A,B,C)
| incident_o(C,A) ) ).
cnf(o2_19,axiom,
open(ax2_sk3(A)) ).
cnf(o2_20,axiom,
( ~ incident_o(A,B)
| incident_c(A,ax2_sk3(B)) ) ).
cnf(o2_21,axiom,
( ~ incident_c(A,ax2_sk3(B))
| incident_o(A,B) ) ).
cnf(o3_22,axiom,
( ~ between_o(A,B,C,D)
| ~ incident_o(E,A)
| incident_c(E,ax2_sk4(A,D,C,B)) ) ).
cnf(o3_23,axiom,
( ~ between_o(A,B,C,D)
| ~ incident_c(E,ax2_sk4(A,D,C,B))
| incident_o(E,A) ) ).
cnf(o3_24,axiom,
( ~ between_o(A,B,C,D)
| between_c(ax2_sk4(A,D,C,B),B,C,D) ) ).
cnf(o3_25,axiom,
( incident_o(ax2_sk5(A,B,C,D,E),B)
| incident_c(ax2_sk5(A,B,C,D,E),A)
| ~ between_c(A,E,D,C)
| between_o(B,E,D,C) ) ).
cnf(o3_26,axiom,
( incident_o(ax2_sk5(A,B,C,D,E),B)
| ~ incident_o(ax2_sk5(A,B,C,D,E),B)
| ~ between_c(A,E,D,C)
| between_o(B,E,D,C) ) ).
cnf(o3_27,axiom,
( ~ incident_c(ax2_sk5(A,B,C,D,E),A)
| incident_c(ax2_sk5(A,B,C,D,E),A)
| ~ between_c(A,E,D,C)
| between_o(B,E,D,C) ) ).
cnf(o3_28,axiom,
( ~ incident_c(ax2_sk5(A,B,C,D,E),A)
| ~ incident_o(ax2_sk5(A,B,C,D,E),B)
| ~ between_c(A,E,D,C)
| between_o(B,E,D,C) ) ).
cnf(o4_29,axiom,
start_point(ax2_sk6(A),A) ).
cnf(o5_30,axiom,
( ~ open(A)
| B = C
| ~ incident_c(B,A)
| ~ incident_c(C,A)
| ~ incident_o(D,ax2_sk7(A,C,B))
| incident_c(D,A) ) ).
cnf(o5_31,axiom,
( ~ open(A)
| B = C
| ~ incident_c(B,A)
| ~ incident_c(C,A)
| ~ incident_c(D,A)
| incident_o(D,ax2_sk7(A,C,B)) ) ).
cnf(o5_32,axiom,
( ~ open(A)
| B = C
| ~ incident_c(B,A)
| ~ incident_c(C,A)
| ordered_by(ax2_sk7(A,C,B),B,C) ) ).
cnf(o6_33,axiom,
( ordered_by(A,ax2_sk8(B,A),ax2_sk9(B,A))
| ordered_by(B,ax2_sk8(B,A),ax2_sk9(B,A))
| A = B ) ).
cnf(o6_34,axiom,
( ordered_by(A,ax2_sk8(B,A),ax2_sk9(B,A))
| ~ ordered_by(A,ax2_sk8(B,A),ax2_sk9(B,A))
| A = B ) ).
cnf(o6_35,axiom,
( ~ ordered_by(A,ax2_sk8(A,B),ax2_sk9(A,B))
| ordered_by(A,ax2_sk8(A,B),ax2_sk9(A,B))
| B = A ) ).
cnf(o6_36,axiom,
( ~ ordered_by(A,ax2_sk8(A,B),ax2_sk9(A,B))
| ~ ordered_by(B,ax2_sk8(A,B),ax2_sk9(A,B))
| B = A ) ).
cnf(underlying_curve_defn_37,axiom,
( A != underlying_curve(B)
| ~ incident_o(C,B)
| incident_c(C,A) ) ).
cnf(underlying_curve_defn_38,axiom,
( A != underlying_curve(B)
| ~ incident_c(C,A)
| incident_o(C,B) ) ).
cnf(underlying_curve_defn_39,axiom,
( incident_o(ax2_sk10(A,B),A)
| incident_c(ax2_sk10(A,B),B)
| B = underlying_curve(A) ) ).
cnf(underlying_curve_defn_40,axiom,
( incident_o(ax2_sk10(A,B),A)
| ~ incident_o(ax2_sk10(A,B),A)
| B = underlying_curve(A) ) ).
cnf(underlying_curve_defn_41,axiom,
( ~ incident_c(ax2_sk10(A,B),B)
| incident_c(ax2_sk10(A,B),B)
| B = underlying_curve(A) ) ).
cnf(underlying_curve_defn_42,axiom,
( ~ incident_c(ax2_sk10(A,B),B)
| ~ incident_o(ax2_sk10(A,B),A)
| B = underlying_curve(A) ) ).
%--------------------------------------------------------------------------
./GEO004-3.ax
%--------------------------------------------------------------------------
% File : GEO004-3 : TPTP v8.2.0. Released v2.4.0.
% Domain : Geometry (Oriented curves)
% Axioms : Trajectories
% Version : [EHK99] axioms.
% English :
% Refs : [KE99] Kulik & Eschenbach (1999), A Geometry of Oriented Curv
% : [EHK99] Eschenbach et al. (1999), Representing Simple Trajecto
% Source : [EHK99]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 14 ( 1 unt; 0 nHn; 12 RR)
% Number of literals : 29 ( 1 equ; 16 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 5 ( 5 usr; 0 con; 1-2 aty)
% Number of variables : 34 ( 2 sgn)
% SPC :
% Comments : Requires GEO004-0.ax GEO004-1.ax GEO004-2.ax
% : Created by tptp2X -f tptp -t clausify:otter GEO004+3.ax
%--------------------------------------------------------------------------
cnf(connect_defn_1,axiom,
( ~ connect(A,B,C)
| once(at_the_same_time(at(A,C),at(B,C))) ) ).
cnf(connect_defn_2,axiom,
( ~ once(at_the_same_time(at(A,B),at(C,B)))
| connect(A,C,B) ) ).
cnf(symmetry_of_at_the_same_time_3,axiom,
( ~ once(at_the_same_time(A,B))
| once(at_the_same_time(B,A)) ) ).
cnf(symmetry_of_at_the_same_time_4,axiom,
( ~ once(at_the_same_time(A,B))
| once(at_the_same_time(B,A)) ) ).
cnf(assciativity_of_at_the_same_time_5,axiom,
( ~ once(at_the_same_time(at_the_same_time(A,B),C))
| once(at_the_same_time(A,at_the_same_time(B,C))) ) ).
cnf(assciativity_of_at_the_same_time_6,axiom,
( ~ once(at_the_same_time(A,at_the_same_time(B,C)))
| once(at_the_same_time(at_the_same_time(A,B),C)) ) ).
cnf(idempotence_of_at_the_same_time_7,axiom,
( ~ once(A)
| once(at_the_same_time(A,A)) ) ).
cnf(conjunction_at_the_same_time_8,axiom,
( ~ once(at_the_same_time(A,B))
| once(A) ) ).
cnf(conjunction_at_the_same_time_9,axiom,
( ~ once(at_the_same_time(A,B))
| once(B) ) ).
cnf(at_on_trajectory_10,axiom,
( ~ once(at(A,B))
| incident_o(B,trajectory_of(A)) ) ).
cnf(at_on_trajectory_11,axiom,
( ~ incident_o(A,trajectory_of(B))
| once(at(B,A)) ) ).
cnf(trajectories_are_oriented_curves_12,axiom,
trajectory_of(A) = ax3_sk1(A) ).
cnf(homogeneous_behaviour_13,axiom,
( ~ once(at_the_same_time(at(A,B),at(C,D)))
| ~ once(at_the_same_time(at(A,E),at(C,F)))
| ~ ordered_by(trajectory_of(A),B,E)
| ~ ordered_by(trajectory_of(C),F,D) ) ).
cnf(localization_14,axiom,
( ~ once(A)
| once(at_the_same_time(A,at(B,ax3_sk2(B,A)))) ) ).
%--------------------------------------------------------------------------
./GEO005-0.ax
%--------------------------------------------------------------------------
% File : GEO005-0 : TPTP v8.2.0. Released v2.7.0.
% Domain : Geometry (Hilbert)
% Axioms : Hilbert geometry axioms, adapted to respect multi-sortedness
% Version : [Cla03] axioms.
% English :
% Refs : [Ben92] Benana992), Recognising Unnecessary Clauses in Res
% : [Cla03] Claessen (2003), Email to G. Sutcliffe
% Source : [Cla03]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 31 ( 1 unt; 18 nHn; 31 RR)
% Number of literals : 174 ( 43 equ; 103 neg)
% Maximal clause size : 16 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-3 aty)
% Number of functors : 10 ( 10 usr; 1 con; 0-3 aty)
% Number of variables : 70 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Axiom 1 : For any two distinct points, there is a unique line through
%----them.
cnf(axiom_G1A,axiom,
( point_on_line(Z1,line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1B,axiom,
( point_on_line(Z2,line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1C,axiom,
( line(line_from_to(Z1,Z2))
| Z1 = Z2
| ~ point(Z1)
| ~ point(Z2) ) ).
cnf(axiom_G1D,axiom,
( ~ point_on_line(Z1,Y3)
| Z1 = Z2
| ~ point_on_line(Z2,Y3)
| Y3 = Y4
| ~ point_on_line(Z1,Y4)
| ~ point_on_line(Z2,Y4)
| ~ point(Z1)
| ~ point(Z2)
| ~ line(Y3)
| ~ line(Y4) ) ).
%----For any line, there are at least two points on the line.
cnf(axiom_G2A,axiom,
( point_on_line(point_1_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G2B,axiom,
( point_on_line(point_2_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G2C,axiom,
( point(point_1_on_line(Y1))
| ~ line(Y1) ) ).
cnf(axiom_G2D,axiom,
( point(point_2_on_line(Y1))
| ~ line(Y1) ) ).
cnf(axiom_G2E,axiom,
( point_1_on_line(Y1) != point_2_on_line(Y1)
| ~ line(Y1) ) ).
%----For any line, there is a point not on the line.
cnf(axiom_G3A,axiom,
( ~ point_on_line(a_point_not_on_line(Y1),Y1)
| ~ line(Y1) ) ).
cnf(axiom_G3B,axiom,
( point(a_point_not_on_line(Y1))
| ~ line(Y1) ) ).
%----There exists at least one line
cnf(axiom_G4A,axiom,
line(at_least_one_line) ).
%----For any plane there is a point on the plane.
cnf(axiom_G5A,axiom,
( ~ plane(Z1)
| point_on_plane(a_point_on_plane(Z1),Z1) ) ).
cnf(axiom_G5B,axiom,
( ~ plane(Z1)
| point(a_point_on_plane(Z1)) ) ).
%----For any plane there is a point not on the plane.
cnf(axiom_G6A,axiom,
( ~ plane(Z1)
| ~ point_on_plane(a_point_not_on_plane(Z1),Z1) ) ).
cnf(axiom_G6B,axiom,
( ~ plane(Z1)
| point(a_point_not_on_plane(Z1)) ) ).
%----For any three non-collinear points there is a unique plane through
%----them.
cnf(axiom_G7A,axiom,
( point_on_plane(X1,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7B,axiom,
( point_on_plane(X2,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7C,axiom,
( point_on_plane(X3,plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7D,axiom,
( plane(plane_for_points(X1,X2,X3))
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3 ) ).
cnf(axiom_G7E,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| collinear(X1,X2,X3)
| X1 = X2
| X1 = X3
| X2 = X3
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X2,Z1)
| ~ point_on_plane(X3,Z1)
| ~ plane(Z1)
| ~ point_on_plane(X1,Z2)
| ~ point_on_plane(X2,Z2)
| ~ point_on_plane(X3,Z2)
| ~ plane(Z2)
| Z1 = Z2 ) ).
%----If two points of a line are in the same plane then every point
%----of that line is in the plane.
cnf(axiom_G8A,axiom,
( ~ point_on_line(X1,Y1)
| ~ point_on_line(X2,Y1)
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X2,Z1)
| ~ plane(Z1)
| ~ point(X1)
| ~ point(X2)
| ~ line(Y1)
| X1 = X2
| line_on_plane(Y1,Z1) ) ).
%----If two planes have a point in common they have at least one more
%----point in common.
cnf(axiom_G9A,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X1,Z2)
| ~ point(X1)
| point_on_plane(common_point_on_planes(Z1,Z2,X1),Z1) ) ).
cnf(axiom_G9B,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X1,Z2)
| ~ point(X1)
| point_on_plane(common_point_on_planes(Z1,Z2,X1),Z2) ) ).
cnf(axiom_G9C,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X1,Z2)
| ~ point(X1)
| point(common_point_on_planes(Z1,Z2,X1)) ) ).
cnf(axiom_G9D,axiom,
( ~ plane(Z1)
| ~ plane(Z2)
| Z1 = Z2
| ~ point_on_plane(X1,Z1)
| ~ point_on_plane(X1,Z2)
| ~ point(X1)
| X1 != common_point_on_planes(Z1,Z2,X1) ) ).
%----Three distinct points are collinear if and only if there is a line
%----through them.
cnf(axiom_G10A,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| point_on_line(X1,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10B,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| point_on_line(X2,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10C,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| point_on_line(X3,line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10D,axiom,
( ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| line(line_through_3_points(X1,X2,X3))
| ~ collinear(X1,X2,X3) ) ).
cnf(axiom_G10E,axiom,
( collinear(X1,X2,X3)
| ~ point_on_line(X1,Y)
| ~ point_on_line(X2,Y)
| ~ point_on_line(X3,Y)
| ~ point(X1)
| ~ point(X2)
| ~ point(X3)
| X1 = X2
| X1 = X3
| X2 = X3
| ~ line(Y) ) ).
%--------------------------------------------------------------------------
./GEO006+0.ax
%------------------------------------------------------------------------------
% File : GEO006+0 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Apartness geometry
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 14 ( 3 unt; 0 def)
% Number of atoms : 35 ( 0 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 28 ( 7 ~; 9 |; 1 &)
% ( 0 <=>; 11 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 33 ( 33 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Apartness for distinct points, distinct lines, convergent lines
fof(apart1,axiom,
! [X] : ~ distinct_points(X,X) ).
fof(apart2,axiom,
! [X] : ~ distinct_lines(X,X) ).
fof(apart3,axiom,
! [X] : ~ convergent_lines(X,X) ).
fof(apart4,axiom,
! [X,Y,Z] :
( distinct_points(X,Y)
=> ( distinct_points(X,Z)
| distinct_points(Y,Z) ) ) ).
fof(apart5,axiom,
! [X,Y,Z] :
( distinct_lines(X,Y)
=> ( distinct_lines(X,Z)
| distinct_lines(Y,Z) ) ) ).
fof(ax6,axiom,
! [X,Y,Z] :
( convergent_lines(X,Y)
=> ( convergent_lines(X,Z)
| convergent_lines(Y,Z) ) ) ).
%----Connecting lines and intersection points
fof(ci1,axiom,
! [X,Y] :
( distinct_points(X,Y)
=> ~ apart_point_and_line(X,line_connecting(X,Y)) ) ).
fof(ci2,axiom,
! [X,Y] :
( distinct_points(X,Y)
=> ~ apart_point_and_line(Y,line_connecting(X,Y)) ) ).
fof(ci3,axiom,
! [X,Y] :
( convergent_lines(X,Y)
=> ~ apart_point_and_line(intersection_point(X,Y),X) ) ).
fof(ci4,axiom,
! [X,Y] :
( convergent_lines(X,Y)
=> ~ apart_point_and_line(intersection_point(X,Y),Y) ) ).
%----Constructive uniqueness axiom for lines and points
fof(cu1,axiom,
! [X,Y,U,V] :
( ( distinct_points(X,Y)
& distinct_lines(U,V) )
=> ( apart_point_and_line(X,U)
| apart_point_and_line(X,V)
| apart_point_and_line(Y,U)
| apart_point_and_line(Y,V) ) ) ).
%----Compatibility of equality with apartness and convergence
fof(ceq1,axiom,
! [X,Y,Z] :
( apart_point_and_line(X,Y)
=> ( distinct_points(X,Z)
| apart_point_and_line(Z,Y) ) ) ).
fof(ceq2,axiom,
! [X,Y,Z] :
( apart_point_and_line(X,Y)
=> ( distinct_lines(Y,Z)
| apart_point_and_line(X,Z) ) ) ).
fof(ceq3,axiom,
! [X,Y,Z] :
( convergent_lines(X,Y)
=> ( distinct_lines(Y,Z)
| convergent_lines(X,Z) ) ) ).
%------------------------------------------------------------------------------
./GEO006+1.ax
%------------------------------------------------------------------------------
% File : GEO006+1 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Projective geometry
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 1 ( 0 unt; 0 def)
% Number of atoms : 2 ( 0 equ)
% Maximal formula atoms : 2 ( 2 avg)
% Number of connectives : 1 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 4 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 2 ( 2 !; 0 ?)
% SPC :
% Comments : Requires GEO006+0
%------------------------------------------------------------------------------
fof(p1,axiom,
! [X,Y] :
( distinct_lines(X,Y)
=> convergent_lines(X,Y) ) ).
%------------------------------------------------------------------------------
./GEO006+2.ax
%------------------------------------------------------------------------------
% File : GEO006+2 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Affine geometry
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 2 unt; 0 def)
% Number of atoms : 6 ( 0 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 5 ( 2 ~; 2 |; 0 &)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 7 ( 7 !; 0 ?)
% SPC :
% Comments : Requires GEO006+0
%------------------------------------------------------------------------------
%----Axioms for constructed parallels
fof(cp1,axiom,
! [X,Y] : ~ convergent_lines(parallel_through_point(Y,X),Y) ).
fof(cp2,axiom,
! [X,Y] : ~ apart_point_and_line(X,parallel_through_point(Y,X)) ).
%----Constructive uniqueness axiom for parallels
fof(cup1,axiom,
! [X,Y,Z] :
( distinct_lines(Y,Z)
=> ( apart_point_and_line(X,Y)
| apart_point_and_line(X,Z)
| convergent_lines(Y,Z) ) ) ).
%------------------------------------------------------------------------------
./GEO006+3.ax
%------------------------------------------------------------------------------
% File : GEO006+3 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Orthogonality
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 2 unt; 0 def)
% Number of atoms : 15 ( 0 equ)
% Maximal formula atoms : 6 ( 3 avg)
% Number of connectives : 12 ( 2 ~; 5 |; 3 &)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 6 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 13 ( 13 !; 0 ?)
% SPC :
% Comments : Requires GEO006+0, GEO006+2
%------------------------------------------------------------------------------
%----Compatibility of convergence and unorthogonality
fof(occu1,axiom,
! [L,M] :
( convergent_lines(L,M)
| unorthogonal_lines(L,M) ) ).
%----Apartness axiom for the conjunction of convergence and unorthogonality
fof(oac1,axiom,
! [L,M,N] :
( ( convergent_lines(L,M)
& unorthogonal_lines(L,M) )
=> ( ( convergent_lines(L,N)
& unorthogonal_lines(L,N) )
| ( convergent_lines(M,N)
& unorthogonal_lines(M,N) ) ) ) ).
%----Axioms for the orthogonal construction
fof(ooc1,axiom,
! [A,L] : ~ unorthogonal_lines(orthogonal_through_point(L,A),L) ).
fof(ooc2,axiom,
! [A,L] : ~ apart_point_and_line(A,orthogonal_through_point(L,A)) ).
%----Constructive uniqueness axiom for orthogonals
fof(ouo1,axiom,
! [A,L,M,N] :
( distinct_lines(L,M)
=> ( apart_point_and_line(A,L)
| apart_point_and_line(A,M)
| unorthogonal_lines(L,N)
| unorthogonal_lines(M,N) ) ) ).
%------------------------------------------------------------------------------
./GEO006+4.ax
%------------------------------------------------------------------------------
% File : GEO006+4 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Classical orthogonality
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 0 unt; 0 def)
% Number of atoms : 11 ( 0 equ)
% Maximal formula atoms : 6 ( 3 avg)
% Number of connectives : 20 ( 12 ~; 3 |; 3 &)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 7 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 8 ( 8 !; 0 ?)
% SPC :
% Comments : Requires GEO006+0, GEO006+2 ????????
%------------------------------------------------------------------------------
%----Incompatibility of parallelism and orthogonality
fof(coipo1,axiom,
! [L,M] :
~ ( ~ convergent_lines(L,M)
& ~ unorthogonal_lines(L,M) ) ).
%----Transitivity of nonobliqueness
fof(cotno1,axiom,
! [L,M,N] :
( ( ( ~ convergent_lines(L,M)
| ~ unorthogonal_lines(L,M) )
& ( ~ convergent_lines(L,N)
| ~ unorthogonal_lines(L,N) ) )
=> ( ~ convergent_lines(M,N)
| ~ unorthogonal_lines(M,N) ) ) ).
%----Uniqueness axiom for orthogonality
fof(couo1,axiom,
! [L,M,N] :
( ( ~ unorthogonal_lines(L,M)
& ~ unorthogonal_lines(L,N) )
=> ~ convergent_lines(M,N) ) ).
%------------------------------------------------------------------------------
./GEO006+5.ax
%------------------------------------------------------------------------------
% File : GEO006+5 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Rules of construction
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 0 unt; 0 def)
% Number of atoms : 14 ( 0 equ)
% Maximal formula atoms : 4 ( 3 avg)
% Number of connectives : 10 ( 0 ~; 0 |; 6 &)
% ( 0 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 6 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 1-2 aty)
% Number of functors : 4 ( 4 usr; 0 con; 2-2 aty)
% Number of variables : 8 ( 8 !; 0 ?)
% SPC :
% Comments : Requires GEO006+[0-4]
%------------------------------------------------------------------------------
%----Connecting line of points A and B
fof(con1,axiom,
! [A,B] :
( ( point(A)
& point(B)
& distinct_points(A,B) )
=> line(line_connecting(A,B)) ) ).
%----Intersection point of lines L and M
fof(int1,axiom,
! [L,M] :
( ( line(L)
& line(M)
& convergent_lines(L,M) )
=> point(intersection_point(L,M)) ) ).
%----Parallel lines
fof(par1,axiom,
! [L,A] :
( ( line(L)
& point(A) )
=> line(parallel_through_point(L,A)) ) ).
%----Orthogonal lines
fof(orth1,axiom,
! [L,A] :
( ( line(L)
& point(A) )
=> line(orthogonal_through_point(L,A)) ) ).
%------------------------------------------------------------------------------
./GEO006+6.ax
%------------------------------------------------------------------------------
% File : GEO006+6 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Geometry definitions
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 0 unt; 0 def)
% Number of atoms : 10 ( 0 equ)
% Maximal formula atoms : 2 ( 2 avg)
% Number of connectives : 10 ( 5 ~; 0 |; 0 &)
% ( 5 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 5 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 10 ( 10 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 10 ( 10 !; 0 ?)
% SPC :
% Comments : Requires GEO006+[0-5]
%------------------------------------------------------------------------------
fof(ax1,axiom,
! [X,Y] :
( equal_points(X,Y)
<=> ~ distinct_points(X,Y) ) ).
fof(ax2,axiom,
! [X,Y] :
( equal_lines(X,Y)
<=> ~ distinct_lines(X,Y) ) ).
fof(a3,axiom,
! [X,Y] :
( parallel_lines(X,Y)
<=> ~ convergent_lines(X,Y) ) ).
fof(a4,axiom,
! [X,Y] :
( incident_point_and_line(X,Y)
<=> ~ apart_point_and_line(X,Y) ) ).
fof(a5,axiom,
! [X,Y] :
( orthogonal_lines(X,Y)
<=> ~ unorthogonal_lines(X,Y) ) ).
%------------------------------------------------------------------------------
./GEO007+0.ax
%------------------------------------------------------------------------------
% File : GEO007+0 : TPTP v8.2.0. Bugfixed v6.4.0.
% Domain : Geometry (Constructive)
% Axioms : Ordered affine geometry
% Version : [vPl98] axioms.
% English :
% Refs : [vPl98] von Plato (1998), A Constructive Theory of Ordered Aff
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 31 ( 7 unt; 0 def)
% Number of atoms : 102 ( 0 equ)
% Maximal formula atoms : 10 ( 3 avg)
% Number of connectives : 87 ( 16 ~; 24 |; 25 &)
% ( 5 <=>; 17 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 6 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 12 ( 12 usr; 0 prp; 1-4 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 71 ( 71 !; 0 ?)
% SPC :
% Comments :
% Bugfixes : v6.4.0 - Fixed oag8.
%------------------------------------------------------------------------------
%----Abbreviations
fof(apt_def,axiom,
! [A,L] :
( apart_point_and_line(A,L)
<=> ( left_apart_point(A,L)
| left_apart_point(A,reverse_line(L)) ) ) ).
fof(con_def,axiom,
! [L,M] :
( convergent_lines(L,M)
<=> ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) ) ) ).
fof(div_def,axiom,
! [A,B,L] :
( divides_points(L,A,B)
<=> ( ( left_apart_point(A,L)
& left_apart_point(B,reverse_line(L)) )
| ( left_apart_point(A,reverse_line(L))
& left_apart_point(B,L) ) ) ) ).
fof(bf_def,axiom,
! [L,A,B] :
( before_on_line(L,A,B)
<=> ( distinct_points(A,B)
& ~ ( left_apart_point(A,L)
| left_apart_point(A,reverse_line(L)) )
& ~ ( left_apart_point(B,L)
| left_apart_point(B,reverse_line(L)) )
& ~ unequally_directed_lines(L,line_connecting(A,B)) ) ) ).
fof(bet_def,axiom,
! [L,A,B,C] :
( between_on_line(L,A,B,C)
<=> ( ( before_on_line(L,A,B)
& before_on_line(L,B,C) )
| ( before_on_line(L,C,B)
& before_on_line(L,B,A) ) ) ) ).
%----General axioms for the basic concepts
fof(oag1,axiom,
! [A] : ~ distinct_points(A,A) ).
fof(oag2,axiom,
! [A,B,C] :
( distinct_points(A,B)
=> ( distinct_points(A,C)
| distinct_points(B,C) ) ) ).
fof(oag3,axiom,
! [L] : ~ distinct_lines(L,L) ).
fof(oag4,axiom,
! [L,M,N] :
( distinct_lines(L,M)
=> ( distinct_lines(L,N)
| distinct_lines(M,N) ) ) ).
fof(oag5,axiom,
! [L] : ~ unequally_directed_lines(L,L) ).
fof(oag6,axiom,
! [L,M,N] :
( unequally_directed_lines(L,M)
=> ( unequally_directed_lines(L,N)
| unequally_directed_lines(M,N) ) ) ).
fof(oag7,axiom,
! [L,M,N] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( ( unequally_directed_lines(L,N)
& unequally_directed_lines(L,reverse_line(N)) )
| ( unequally_directed_lines(M,N)
& unequally_directed_lines(M,reverse_line(N)) ) ) ) ).
fof(oag8,axiom,
! [L,M] :
( ( line(L)
& line(M) )
=> ( unequally_directed_lines(L,M)
| unequally_directed_lines(L,reverse_line(M)) ) ) ).
fof(oag9,axiom,
! [L,M] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( left_convergent_lines(L,M)
| left_convergent_lines(L,reverse_line(M)) ) ) ).
fof(oag10,axiom,
! [A,L] :
~ ( left_apart_point(A,L)
| left_apart_point(A,reverse_line(L)) ) ).
fof(oag11,axiom,
! [L,M] :
~ ( left_convergent_lines(L,M)
| left_convergent_lines(L,reverse_line(M)) ) ).
%----Constructed objects
fof(oagco1,axiom,
! [A,B] :
( ( point(A)
& point(B)
& distinct_points(A,B) )
=> line(line_connecting(A,B)) ) ).
fof(oagco2,axiom,
! [L,M] :
( ( line(L)
& line(M)
& unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> point(intersection_point(L,M)) ) ).
fof(oagco3,axiom,
! [L,A] :
( ( point(A)
& line(L) )
=> line(parallel_through_point(L,A)) ) ).
fof(oagco4,axiom,
! [L] :
( line(L)
=> line(reverse_line(L)) ) ).
fof(oagco5,axiom,
! [A,B] :
( distinct_points(A,B)
=> ( ~ apart_point_and_line(A,line_connecting(A,B))
& ~ apart_point_and_line(B,line_connecting(A,B)) ) ) ).
fof(oagco6,axiom,
! [L,M] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( ~ apart_point_and_line(intersection_point(L,M),L)
& ~ apart_point_and_line(intersection_point(L,M),M) ) ) ).
fof(oagco7,axiom,
! [A,L] : ~ apart_point_and_line(A,parallel_through_point(L,A)) ).
fof(oagco8,axiom,
! [L] : ~ distinct_lines(L,reverse_line(L)) ).
fof(oagco9,axiom,
! [A,B] : ~ unequally_directed_lines(line_connecting(A,B),reverse_line(line_connecting(B,A))) ).
fof(oagco10,axiom,
! [A,L] : ~ unequally_directed_lines(parallel_through_point(L,A),L) ).
%----Uniqueness axioms for the constructions
fof(oaguc1,axiom,
! [A,B,L,M] :
( ( distinct_points(A,B)
& distinct_lines(L,M) )
=> ( left_apart_point(A,L)
| left_apart_point(B,L)
| left_apart_point(A,M)
| left_apart_point(B,M)
| left_apart_point(A,reverse_line(L))
| left_apart_point(B,reverse_line(L))
| left_apart_point(A,reverse_line(M))
| left_apart_point(B,reverse_line(M)) ) ) ).
fof(oaguc2,axiom,
! [A,B,L] :
( ( distinct_points(A,B)
& left_apart_point(A,L) )
=> ( left_apart_point(B,L)
| left_convergent_lines(line_connecting(A,B),L) ) ) ).
%----Substitution axioms
fof(oagsub1,axiom,
! [A,B,L] :
( left_apart_point(A,L)
=> ( distinct_points(A,B)
| left_apart_point(B,L) ) ) ).
fof(oagsub2,axiom,
! [A,L,M] :
( ( left_apart_point(A,L)
& unequally_directed_lines(L,M) )
=> ( distinct_lines(L,M)
| left_apart_point(A,reverse_line(M)) ) ) ).
fof(oagsub3,axiom,
! [L,M,N] :
( left_convergent_lines(L,M)
=> ( unequally_directed_lines(M,N)
| left_convergent_lines(L,N) ) ) ).
%------------------------------------------------------------------------------
./GEO007+1.ax
%------------------------------------------------------------------------------
% File : GEO007+1 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Principles of a classical calculus of directed lines
% Version : [vPl98] axioms.
% English :
% Refs : [vPl98] von Plato (1998), A Constructive Theory of Ordered Aff
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 1 unt; 0 def)
% Number of atoms : 21 ( 0 equ)
% Maximal formula atoms : 6 ( 3 avg)
% Number of connectives : 34 ( 19 ~; 4 |; 6 &)
% ( 1 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 1-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 16 ( 16 !; 0 ?)
% SPC :
% Comments : Requires GEO007+0
% Bugfixes : v6.4.0 - Fixed cld4.
%------------------------------------------------------------------------------
fof(cld1,axiom,
! [L] : ~ unequally_directed_lines(L,L) ).
fof(cld2,axiom,
! [L,M,N] :
( ( ~ unequally_directed_lines(L,M)
& ~ unequally_directed_lines(L,N) )
=> ~ unequally_directed_lines(M,N) ) ).
fof(cld3,axiom,
! [A,B,L,M] :
( ~ ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
<=> ( ~ unequally_directed_lines(L,M)
| ~ unequally_directed_lines(L,reverse_line(M)) ) ) ).
fof(cld3a,axiom,
! [L,M,N] :
( ( ( ~ unequally_directed_lines(L,M)
| ~ unequally_directed_lines(L,reverse_line(M)) )
& ( ~ unequally_directed_lines(L,N)
| ~ unequally_directed_lines(L,reverse_line(N)) ) )
=> ( ~ unequally_directed_lines(M,N)
| ~ unequally_directed_lines(M,reverse_line(N)) ) ) ).
fof(cld4,axiom,
! [L,M] :
( ( line(L)
& line(M) )
=> ~ ( ~ unequally_directed_lines(L,M)
& ~ unequally_directed_lines(L,reverse_line(M)) ) ) ).
fof(cld5,axiom,
! [L,M,N] :
( ~ unequally_directed_lines(L,reverse_line(M))
& ( ~ unequally_directed_lines(L,reverse_line(N))
=> ~ unequally_directed_lines(M,N) ) ) ).
%------------------------------------------------------------------------------
./GEO008+0.ax
%------------------------------------------------------------------------------
% File : GEO008+0 : TPTP v8.2.0. Released v3.3.0.
% Domain : Geometry (Constructive)
% Axioms : Apartness geometry
% Version : [Li97] axioms.
% English :
% Refs : [Li98] Li (1998), A Shorter and Intuitive Axiom to Replace th
% : [Li97] Li (1997), Replacing the Axioms for Connecting Lines a
% : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 12 ( 3 unt; 0 def)
% Number of atoms : 34 ( 0 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 25 ( 3 ~; 9 |; 2 &)
% ( 0 <=>; 11 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 6 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 30 ( 30 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Apartness for distinct points, distinct lines, convergent lines
fof(apart1,axiom,
! [X] : ~ distinct_points(X,X) ).
fof(apart2,axiom,
! [X] : ~ distinct_lines(X,X) ).
fof(apart3,axiom,
! [X] : ~ convergent_lines(X,X) ).
fof(apart4,axiom,
! [X,Y,Z] :
( distinct_points(X,Y)
=> ( distinct_points(X,Z)
| distinct_points(Y,Z) ) ) ).
fof(apart5,axiom,
! [X,Y,Z] :
( distinct_lines(X,Y)
=> ( distinct_lines(X,Z)
| distinct_lines(Y,Z) ) ) ).
fof(apart6,axiom,
! [X,Y,Z] :
( convergent_lines(X,Y)
=> ( convergent_lines(X,Z)
| convergent_lines(Y,Z) ) ) ).
%----Connecting lines and intersection points
fof(con1,axiom,
! [X,Y,Z] :
( distinct_points(X,Y)
=> ( apart_point_and_line(Z,line_connecting(X,Y))
=> ( distinct_points(Z,X)
& distinct_points(Z,Y) ) ) ) ).
fof(con2,axiom,
! [X,Y,Z] :
( convergent_lines(X,Y)
=> ( ( apart_point_and_line(Z,X)
| apart_point_and_line(Z,Y) )
=> distinct_points(Z,intersection_point(X,Y)) ) ) ).
%----Constructive uniqueness axiom for lines and points
fof(cu1,axiom,
! [X,Y,U,V] :
( ( distinct_points(X,Y)
& distinct_lines(U,V) )
=> ( apart_point_and_line(X,U)
| apart_point_and_line(X,V)
| apart_point_and_line(Y,U)
| apart_point_and_line(Y,V) ) ) ).
%----Compatibility of equality with apartness and convergence
fof(ceq1,axiom,
! [X,Y,Z] :
( apart_point_and_line(X,Y)
=> ( distinct_points(X,Z)
| apart_point_and_line(Z,Y) ) ) ).
fof(ceq2,axiom,
! [X,Y,Z] :
( apart_point_and_line(X,Y)
=> ( distinct_lines(Y,Z)
| apart_point_and_line(X,Z) ) ) ).
fof(ceq3,axiom,
! [X,Y] :
( convergent_lines(X,Y)
=> distinct_lines(X,Y) ) ).
%------------------------------------------------------------------------------
./GEO009+0.ax
%------------------------------------------------------------------------------
% File : GEO009+0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Geometry (Constructive)
% Axioms : Ordered affine geometry with definitions
% Version : [vPl95] axioms.
% English :
% Refs : [vPl95] von Plato (1995), The Axioms of Constructive Geometry
% Source : [ILTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 36 ( 6 unt; 0 def)
% Number of atoms : 109 ( 0 equ)
% Maximal formula atoms : 10 ( 3 avg)
% Number of connectives : 85 ( 12 ~; 22 |; 24 &)
% ( 10 <=>; 17 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 5 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 18 ( 18 usr; 0 prp; 1-4 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 81 ( 81 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(a1_defns,axiom,
! [X,Y] :
( unequally_directed_opposite_lines(X,Y)
<=> unequally_directed_lines(X,reverse_line(Y)) ) ).
fof(a2_defns,axiom,
! [X,Y] :
( right_apart_point(X,Y)
<=> left_apart_point(X,reverse_line(Y)) ) ).
fof(a3_defns,axiom,
! [X,Y] :
( right_convergent_lines(X,Y)
<=> left_convergent_lines(X,reverse_line(Y)) ) ).
fof(a4_defns,axiom,
! [X,Y] :
( equally_directed_lines(X,Y)
<=> ~ unequally_directed_lines(X,Y) ) ).
fof(a5_defns,axiom,
! [X,Y] :
( equally_directed_opposite_lines(X,Y)
<=> ~ unequally_directed_opposite_lines(X,Y) ) ).
fof(a6_defns,axiom,
! [A,L] :
( apart_point_and_line(A,L)
<=> ( left_apart_point(A,L)
| right_apart_point(A,L) ) ) ).
fof(a7_defns,axiom,
! [L,M] :
( convergent_lines(L,M)
<=> ( unequally_directed_lines(L,M)
& unequally_directed_opposite_lines(L,M) ) ) ).
fof(a8_defns,axiom,
! [A,B,L] :
( divides_points(L,A,B)
<=> ( ( left_apart_point(A,L)
& right_apart_point(B,L) )
| ( right_apart_point(A,L)
& left_apart_point(B,L) ) ) ) ).
fof(ax4_defns,axiom,
! [L,A,B] :
( before_on_line(L,A,B)
<=> ( distinct_points(A,B)
& incident_point_and_line(A,L)
& incident_point_and_line(B,L)
& equally_directed_lines(L,line_connecting(A,B)) ) ) ).
fof(a9_defns,axiom,
! [L,A,B,C] :
( between_on_line(L,A,B,C)
<=> ( ( before_on_line(L,A,B)
& before_on_line(L,B,C) )
| ( before_on_line(L,C,B)
& before_on_line(L,B,A) ) ) ) ).
fof(ax1_basics,axiom,
! [A] : ~ distinct_points(A,A) ).
fof(ax2_basics,axiom,
! [A,B,C] :
( distinct_points(A,B)
=> ( distinct_points(A,C)
| distinct_points(B,C) ) ) ).
fof(ax3_basics,axiom,
! [L] : ~ distinct_lines(L,L) ).
fof(ax4_basics,axiom,
! [L,M,N] :
( distinct_lines(L,M)
=> ( distinct_lines(L,N)
| distinct_lines(M,N) ) ) ).
fof(ax5_basics,axiom,
! [L] : equally_directed_lines(L,L) ).
fof(ax6_basics,axiom,
! [L,M,N] :
( unequally_directed_lines(L,M)
=> ( unequally_directed_lines(L,N)
| unequally_directed_lines(M,N) ) ) ).
fof(ax7_basics,axiom,
! [L,M,N] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( ( unequally_directed_lines(L,N)
& unequally_directed_lines(L,reverse_line(N)) )
| ( unequally_directed_lines(M,N)
& unequally_directed_lines(M,reverse_line(N)) ) ) ) ).
fof(ax8_basics,axiom,
! [L,M] :
( unequally_directed_lines(L,M)
| unequally_directed_lines(L,reverse_line(M)) ) ).
fof(ax9_basics,axiom,
! [L,M] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( left_convergent_lines(L,M)
| left_convergent_lines(L,reverse_line(M)) ) ) ).
fof(ax10_basics,axiom,
! [A,L] :
~ ( left_apart_point(A,L)
| left_apart_point(A,reverse_line(L)) ) ).
fof(ax11_basics,axiom,
! [L,M] :
~ ( left_convergent_lines(L,M)
| left_convergent_lines(L,reverse_line(M)) ) ).
fof(ax1_cons_objs,axiom,
! [A,B] :
( ( point(A)
& point(B)
& distinct_points(A,B) )
=> line(line_connecting(A,B)) ) ).
fof(ax2_cons_objs,axiom,
! [L,M] :
( ( line(L)
& line(M)
& unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> point(intersection_point(L,M)) ) ).
fof(ax3_cons_objs,axiom,
! [L,A] :
( ( point(A)
& line(L) )
=> line(parallel_through_point(L,A)) ) ).
fof(ax4_cons_objs,axiom,
! [L] :
( line(L)
=> line(reverse_line(L)) ) ).
fof(ax5_cons_objs,axiom,
! [A,B] :
( distinct_points(A,B)
=> ( ~ apart_point_and_line(A,line_connecting(A,B))
& ~ apart_point_and_line(B,line_connecting(A,B)) ) ) ).
fof(ax6_cons_objs,axiom,
! [L,M] :
( ( unequally_directed_lines(L,M)
& unequally_directed_lines(L,reverse_line(M)) )
=> ( ~ apart_point_and_line(intersection_point(L,M),L)
& ~ apart_point_and_line(intersection_point(L,M),M) ) ) ).
fof(ax7_cons_objs,axiom,
! [A,L] : ~ apart_point_and_line(A,parallel_through_point(L,A)) ).
fof(ax8_cons_objs,axiom,
! [L] : ~ distinct_lines(L,reverse_line(L)) ).
fof(ax9_cons_objs,axiom,
! [A,B] :
( distinct_points(A,B)
=> equally_directed_lines(line_connecting(A,B),reverse_line(line_connecting(B,A))) ) ).
fof(ax10_cons_objs,axiom,
! [A,L] : equally_directed_lines(parallel_through_point(L,A),L) ).
fof(ax1_uniq_cons,axiom,
! [A,B,L,M] :
( ( distinct_points(A,B)
& distinct_lines(L,M) )
=> ( left_apart_point(A,L)
| left_apart_point(B,L)
| left_apart_point(A,M)
| left_apart_point(B,M)
| left_apart_point(A,reverse_line(L))
| left_apart_point(B,reverse_line(L))
| left_apart_point(A,reverse_line(M))
| left_apart_point(B,reverse_line(M)) ) ) ).
fof(ax2_uniq_cons,axiom,
! [A,B,L] :
( ( distinct_points(A,B)
& left_apart_point(A,L) )
=> ( left_apart_point(B,L)
| left_convergent_lines(line_connecting(A,B),L) ) ) ).
fof(ax1_subs,axiom,
! [A,B,L] :
( left_apart_point(A,L)
=> ( distinct_points(A,B)
| left_apart_point(B,L) ) ) ).
fof(ax2_subs,axiom,
! [A,L,M] :
( ( left_apart_point(A,L)
& unequally_directed_lines(L,M) )
=> ( distinct_lines(L,M)
| left_apart_point(A,reverse_line(M)) ) ) ).
fof(ax3_subs,axiom,
! [L,M,N] :
( left_convergent_lines(L,M)
=> ( unequally_directed_lines(M,N)
| left_convergent_lines(L,N) ) ) ).
%------------------------------------------------------------------------------
./GEO010+0.ax
Very long 17016
./GEO010+1.ax
Very long 5517
./GEO011+0.ax
%------------------------------------------------------------------------------
% File : GEO011+0 : TPTP v8.2.0. Released v7.0.0.
% Domain : Geometry
% Axioms : Tarskian geometry
% Version : [Urb16] axioms : Especial.
% English :
% Refs : [Urb16] Urban (2016), Email to Geoff Sutcliffe
% : [BW17] Beeson & Wos (2017), Finding Proofs in Tarskian Geomet
% Source : [Urb16]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 1 unt; 0 def)
% Number of atoms : 27 ( 3 equ)
% Maximal formula atoms : 8 ( 3 avg)
% Number of connectives : 36 ( 17 ~; 15 |; 4 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 16 ( 8 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-4 aty)
% Number of functors : 5 ( 5 usr; 3 con; 0-5 aty)
% Number of variables : 30 ( 30 !; 0 ?)
% SPC : FOF_SAT_RFO_SEQ
% Comments :
%------------------------------------------------------------------------------
fof(aA1,axiom,
! [X,Y] : s_e(X,Y,Y,X) ).
fof(aA2,axiom,
! [X,Y,Z,V,Z2,V2] :
( ~ s_e(X,Y,Z,V)
| ~ s_e(X,Y,Z2,V2)
| s_e(Z,V,Z2,V2) ) ).
fof(aA3,axiom,
! [X,Y,Z] :
( ~ s_e(X,Y,Z,Z)
| X = Y ) ).
fof(aA4,axiom,
! [X,Y,W,V] :
( s_t(X,Y,ext(X,Y,W,V))
& s_e(Y,ext(X,Y,W,V),W,V) ) ).
fof(aA5,axiom,
! [X,Y,X1,Y1,Z,Z1,V,V1] :
( ~ s_e(X,Y,X1,Y1)
| ~ s_e(Y,Z,Y1,Z1)
| ~ s_e(X,V,X1,V1)
| ~ s_e(Y,V,Y1,V1)
| ~ s_t(X,Y,Z)
| ~ s_t(X1,Y1,Z1)
| X = Y
| s_e(Z,V,Z1,V1) ) ).
fof(aA6,axiom,
! [X,Y] :
( ~ s_t(X,Y,X)
| X = Y ) ).
fof(aA7,axiom,
! [Xa,Xp,Xc,Xb,Xq] :
( ( ~ s_t(Xa,Xp,Xc)
| ~ s_t(Xb,Xq,Xc)
| s_t(Xp,ip(Xa,Xp,Xc,Xb,Xq),Xb) )
& ( ~ s_t(Xa,Xp,Xc)
| ~ s_t(Xb,Xq,Xc)
| s_t(Xq,ip(Xa,Xp,Xc,Xb,Xq),Xa) ) ) ).
fof(aA8,axiom,
( ~ s_t(alpha,beta,gamma)
& ~ s_t(beta,gamma,alpha)
& ~ s_t(gamma,alpha,beta) ) ).
%------------------------------------------------------------------------------
./GEO012+0.ax
Very long 621
Graph Theory
./GRA001+0.ax
%------------------------------------------------------------------------------
% File : GRA001+0 : TPTP v8.2.0. Bugfixed v3.2.0.
% Domain : Graph Theory
% Axioms : Directed graphs and paths
% Version : [TPTP] axioms : Especial.
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 12 ( 0 unt; 0 def)
% Number of atoms : 72 ( 21 equ)
% Maximal formula atoms : 9 ( 6 avg)
% Number of connectives : 66 ( 6 ~; 3 |; 38 &)
% ( 2 <=>; 12 =>; 2 <=; 3 <~>)
% Maximal formula depth : 13 ( 10 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 11 ( 10 usr; 1 prp; 0-3 aty)
% Number of functors : 5 ( 5 usr; 1 con; 0-2 aty)
% Number of variables : 48 ( 39 !; 9 ?)
% SPC :
% Comments :
% Bugfixes : v3.2.0 - Added formula edge_ends_are_vertices.
%------------------------------------------------------------------------------
fof(no_loops,axiom,
! [E] :
( edge(E)
=> head_of(E) != tail_of(E) ) ).
fof(edge_ends_are_vertices,axiom,
! [E] :
( edge(E)
=> ( vertex(head_of(E))
& vertex(tail_of(E)) ) ) ).
fof(complete_properties,axiom,
( complete
=> ! [V1,V2] :
( ( vertex(V1)
& vertex(V2)
& V1 != V2 )
=> ? [E] :
( edge(E)
& ( ( V1 = head_of(E)
& V2 = tail_of(E) )
<~> ( V2 = head_of(E)
& V1 = tail_of(E) ) ) ) ) ) ).
fof(path_defn,axiom,
! [V1,V2,P] :
( path(V1,V2,P)
<= ( vertex(V1)
& vertex(V2)
& ? [E] :
( edge(E)
& V1 = tail_of(E)
& ( ( V2 = head_of(E)
& P = path_cons(E,empty) )
| ? [TP] :
( path(head_of(E),V2,TP)
& P = path_cons(E,TP) ) ) ) ) ) ).
fof(path_properties,axiom,
! [V1,V2,P] :
( path(V1,V2,P)
=> ( vertex(V1)
& vertex(V2)
& ? [E] :
( edge(E)
& V1 = tail_of(E)
& ( ( V2 = head_of(E)
& P = path_cons(E,empty) )
<~> ? [TP] :
( path(head_of(E),V2,TP)
& P = path_cons(E,TP) ) ) ) ) ) ).
fof(on_path_properties,axiom,
! [V1,V2,P,E] :
( ( path(V1,V2,P)
& on_path(E,P) )
=> ( edge(E)
& in_path(head_of(E),P)
& in_path(tail_of(E),P) ) ) ).
fof(in_path_properties,axiom,
! [V1,V2,P,V] :
( ( path(V1,V2,P)
& in_path(V,P) )
=> ( vertex(V)
& ? [E] :
( on_path(E,P)
& ( V = head_of(E)
| V = tail_of(E) ) ) ) ) ).
fof(sequential_defn,axiom,
! [E1,E2] :
( sequential(E1,E2)
<=> ( edge(E1)
& edge(E2)
& E1 != E2
& head_of(E1) = tail_of(E2) ) ) ).
fof(precedes_defn,axiom,
! [P,V1,V2] :
( path(V1,V2,P)
=> ! [E1,E2] :
( precedes(E1,E2,P)
<= ( on_path(E1,P)
& on_path(E2,P)
& ( sequential(E1,E2)
| ? [E3] :
( sequential(E1,E3)
& precedes(E3,E2,P) ) ) ) ) ) ).
fof(precedes_properties,axiom,
! [P,V1,V2] :
( path(V1,V2,P)
=> ! [E1,E2] :
( precedes(E1,E2,P)
=> ( on_path(E1,P)
& on_path(E2,P)
& ( sequential(E1,E2)
<~> ? [E3] :
( sequential(E1,E3)
& precedes(E3,E2,P) ) ) ) ) ) ).
fof(shortest_path_defn,axiom,
! [V1,V2,SP] :
( shortest_path(V1,V2,SP)
<=> ( path(V1,V2,SP)
& V1 != V2
& ! [P] :
( path(V1,V2,P)
=> less_or_equal(length_of(SP),length_of(P)) ) ) ) ).
fof(shortest_path_properties,axiom,
! [V1,V2,E1,E2,P] :
( ( shortest_path(V1,V2,P)
& precedes(E1,E2,P) )
=> ( ~ ? [E3] :
( tail_of(E3) = tail_of(E1)
& head_of(E3) = head_of(E2) )
& ~ precedes(E2,E1,P) ) ) ).
%------------------------------------------------------------------------------
Group Theory
./GRP001-0.ax
%--------------------------------------------------------------------------
% File : GRP001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group theory (Monoids)
% Axioms : Monoid axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Ver93] Veroff (1993), Email to G. Sutcliffe
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 3 unt; 0 nHn; 3 RR)
% Number of literals : 14 ( 1 equ; 8 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 2 ( 2 usr; 1 con; 0-2 aty)
% Number of variables : 20 ( 0 sgn)
% SPC :
% Comments : [Ver93] pointed out that the traditional labelling of the
% closure and well_definedness axioms was wrong. The correct
% labelling indicates that product is a total function.
% : I cut down the [MOW76] group axioms for this.
%--------------------------------------------------------------------------
cnf(left_identity,axiom,
product(identity,X,X) ).
cnf(right_identity,axiom,
product(X,identity,X) ).
%----This axiom is called closure or totality in some axiomatisations
cnf(total_function1,axiom,
product(X,Y,multiply(X,Y)) ).
%----This axiom is called well_definedness in some axiomatisations
cnf(total_function2,axiom,
( ~ product(X,Y,Z)
| ~ product(X,Y,W)
| Z = W ) ).
cnf(associativity1,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W)
| product(X,V,W) ) ).
cnf(associativity2,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W)
| product(U,Z,W) ) ).
%--------------------------------------------------------------------------
./GRP002-0.ax
%--------------------------------------------------------------------------
% File : GRP002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory (Semigroups)
% Axioms : Semigroup axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Ver93] Veroff (1993), Email to G. Sutcliffe
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 1 unt; 0 nHn; 3 RR)
% Number of literals : 12 ( 1 equ; 8 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 18 ( 0 sgn)
% SPC :
% Comments : [Ver93] pointed out that the traditional labelling of the
% closure and well_definedness axioms was wrong. The correct
% labelling indicates that product is a total function.
% : I cut down the [MOW76] group axioms for this.
%--------------------------------------------------------------------------
%----This axiom is called closure or totality in some axiomatisations
cnf(total_function1,axiom,
product(X,Y,multiply(X,Y)) ).
%----This axiom is called well_definedness in some axiomatisations
cnf(total_function2,axiom,
( ~ product(X,Y,Z)
| ~ product(X,Y,W)
| Z = W ) ).
cnf(associativity1,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W)
| product(X,V,W) ) ).
cnf(associativity2,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W)
| product(U,Z,W) ) ).
%--------------------------------------------------------------------------
./GRP003+0.ax
%--------------------------------------------------------------------------
% File : GRP003+0 : TPTP v8.2.0. Released v2.5.0.
% Domain : Group Theory
% Axioms : Group theory axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [Ver93] Veroff (1993), Email to G. Sutcliffe
% Source : TPTP
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 5 unt; 0 def)
% Number of atoms : 16 ( 1 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 8 ( 0 ~; 0 |; 5 &)
% ( 0 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 22 ( 22 !; 0 ?)
% SPC :
% Comments :
%--------------------------------------------------------------------------
fof(left_identity,axiom,
! [X] : product(identity,X,X) ).
fof(right_identity,axiom,
! [X] : product(X,identity,X) ).
fof(left_inverse,axiom,
! [X] : product(inverse(X),X,identity) ).
fof(right_inverse,axiom,
! [X] : product(X,inverse(X),identity) ).
%----This axiom is called closure or totality in some axiomatisations
fof(total_function1,axiom,
! [X,Y] : product(X,Y,multiply(X,Y)) ).
%----This axiom is called well_definedness in some axiomatisations
fof(total_function2,axiom,
! [W,X,Y,Z] :
( ( product(X,Y,Z)
& product(X,Y,W) )
=> Z = W ) ).
fof(associativity1,axiom,
! [X,Y,Z,U,V,W] :
( ( product(X,Y,U)
& product(Y,Z,V)
& product(U,Z,W) )
=> product(X,V,W) ) ).
fof(associativity2,axiom,
! [X,Y,Z,U,V,W] :
( ( product(X,Y,U)
& product(Y,Z,V)
& product(X,V,W) )
=> product(U,Z,W) ) ).
%--------------------------------------------------------------------------
./GRP003-0.ax
%--------------------------------------------------------------------------
% File : GRP003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory
% Axioms : Group theory axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [Ver93] Veroff (1993), Email to G. Sutcliffe
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 5 unt; 0 nHn; 3 RR)
% Number of literals : 16 ( 1 equ; 8 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 22 ( 0 sgn)
% SPC :
% Comments : [Ver93] pointed out that the traditional labelling of the
% closure and well_definedness axioms was wrong. The correct
% labelling indicates that product is a total function.
% : These axioms are used in [Wos88] p.184.
%--------------------------------------------------------------------------
cnf(left_identity,axiom,
product(identity,X,X) ).
cnf(right_identity,axiom,
product(X,identity,X) ).
cnf(left_inverse,axiom,
product(inverse(X),X,identity) ).
cnf(right_inverse,axiom,
product(X,inverse(X),identity) ).
%----This axiom is called closure or totality in some axiomatisations
cnf(total_function1,axiom,
product(X,Y,multiply(X,Y)) ).
%----This axiom is called well_definedness in some axiomatisations
cnf(total_function2,axiom,
( ~ product(X,Y,Z)
| ~ product(X,Y,W)
| Z = W ) ).
cnf(associativity1,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W)
| product(X,V,W) ) ).
cnf(associativity2,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W)
| product(U,Z,W) ) ).
%--------------------------------------------------------------------------
./GRP003-1.ax
%--------------------------------------------------------------------------
% File : GRP003-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory (Subgroups)
% Axioms : Subgroup axioms for the GRP003 group theory axioms
% Version : [MOW76] axioms : Reduced > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 2 ( 0 unt; 0 nHn; 2 RR)
% Number of literals : 6 ( 0 equ; 4 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 1-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 4 ( 0 sgn)
% SPC :
% Comments : Requires GRP003-0.ax
% : The dependent axiom, that identity is in every subgroup, is
% omitted.
% : These axioms are used in [Wos88] p.187, but with the dependent
% axiom.
%--------------------------------------------------------------------------
cnf(closure_of_inverse,axiom,
( ~ subgroup_member(X)
| subgroup_member(inverse(X)) ) ).
cnf(closure_of_product,axiom,
( ~ subgroup_member(A)
| ~ subgroup_member(B)
| ~ product(A,B,C)
| subgroup_member(C) ) ).
%--------------------------------------------------------------------------
./GRP003-2.ax
%--------------------------------------------------------------------------
% File : GRP003-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory (Subgroups)
% Axioms : Subgroup axioms for the GRP003 group theory axioms
% Version : [Wos65] axioms.
% English :
% Refs : [Wos65] Wos (1965), Unpublished Note
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 0 unt; 0 nHn; 1 RR)
% Number of literals : 4 ( 0 equ; 3 neg)
% Maximal clause size : 4 ( 4 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 1-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 3 ( 0 sgn)
% SPC :
% Comments : Requires GRP003-0.ax
% The closure_of_product_and_inverse axiom is derived from the
% two basic subgroup axioms - closure of product and
% closure_of_inverse - by resolution.
%--------------------------------------------------------------------------
cnf(closure_of_product_and_inverse,axiom,
( ~ subgroup_member(A)
| ~ subgroup_member(B)
| ~ product(A,inverse(B),C)
| subgroup_member(C) ) ).
%--------------------------------------------------------------------------
./GRP004+0.ax
%--------------------------------------------------------------------------
% File : GRP004+0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory
% Axioms : Group theory (equality) axioms
% Version : [MOW76] (equality) axioms :
% Reduced > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 3 unt; 0 def)
% Number of atoms : 3 ( 3 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 3 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 5 ( 5 !; 0 ?)
% SPC :
% Comments : Reverse engineered from GRP004-0.ax.
%--------------------------------------------------------------------------
%----There exists an identity element
fof(left_identity,axiom,
! [X] : multiply(identity,X) = X ).
%----For any x in the group, there exists an element y such that x*y = y*x
%----= identity.
fof(left_inverse,axiom,
! [X] : multiply(inverse(X),X) = identity ).
%----The operation '*' is associative
fof(associativity,axiom,
! [X,Y,Z] : multiply(multiply(X,Y),Z) = multiply(X,multiply(Y,Z)) ).
%--------------------------------------------------------------------------
./GRP004-0.ax
%--------------------------------------------------------------------------
% File : GRP004-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory
% Axioms : Group theory (equality) axioms
% Version : [MOW76] (equality) axioms :
% Reduced > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 3 unt; 0 nHn; 0 RR)
% Number of literals : 3 ( 3 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 5 ( 0 sgn)
% SPC :
% Comments : [MOW76] also contains redundant right_identity and
% right_inverse axioms.
% : These axioms are also used in [Wos88] p.186, also with
% right_identity and right_inverse.
%--------------------------------------------------------------------------
%----For any x and y in the group x*y is also in the group. No clause
%----is needed here since this is an instance of reflexivity
%----There exists an identity element
cnf(left_identity,axiom,
multiply(identity,X) = X ).
%----For any x in the group, there exists an element y such that x*y = y*x
%----= identity.
cnf(left_inverse,axiom,
multiply(inverse(X),X) = identity ).
%----The operation '*' is associative
cnf(associativity,axiom,
multiply(multiply(X,Y),Z) = multiply(X,multiply(Y,Z)) ).
%--------------------------------------------------------------------------
./GRP004-1.ax
%--------------------------------------------------------------------------
% File : GRP004-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory (Subgroups)
% Axioms : Subgroup (equality) axioms
% Version : [MOW76] (equality) axioms :
% Reduced > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 2 ( 0 unt; 0 nHn; 2 RR)
% Number of literals : 6 ( 1 equ; 4 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 1-2 aty)
% Number of variables : 4 ( 0 sgn)
% SPC :
% Comments : Requires GRP004-0.ax
% : The redundant axiom that states that the identity element is in
% the subgroup, present in the [MOW76] presentation, is omitted
% here.
%--------------------------------------------------------------------------
cnf(closure_of_inverse,axiom,
( ~ subgroup_member(X)
| subgroup_member(inverse(X)) ) ).
cnf(closure_of_multiply,axiom,
( ~ subgroup_member(X)
| ~ subgroup_member(Y)
| multiply(X,Y) != Z
| subgroup_member(Z) ) ).
%--------------------------------------------------------------------------
./GRP004-2.ax
%--------------------------------------------------------------------------
% File : GRP004-2 : TPTP v8.2.0. Bugfixed v1.2.0.
% Domain : Group Theory (Lattice Ordered)
% Axioms : Lattice ordered group (equality) axioms
% Version : [Fuc94] (equality) axioms.
% English :
% Refs : [Fuc94] Fuchs (1994), The Application of Goal-Orientated Heuri
% : [Sch95] Schulz (1995), Explanation Based Learning for Distribu
% Source : [Sch95]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 12 ( 12 unt; 0 nHn; 0 RR)
% Number of literals : 12 ( 12 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 2-2 aty)
% Number of variables : 28 ( 2 sgn)
% SPC :
% Comments : Requires GRP004-0.ax
%--------------------------------------------------------------------------
%----Specification of the least upper bound and greatest lower bound
cnf(symmetry_of_glb,axiom,
greatest_lower_bound(X,Y) = greatest_lower_bound(Y,X) ).
cnf(symmetry_of_lub,axiom,
least_upper_bound(X,Y) = least_upper_bound(Y,X) ).
cnf(associativity_of_glb,axiom,
greatest_lower_bound(X,greatest_lower_bound(Y,Z)) = greatest_lower_bound(greatest_lower_bound(X,Y),Z) ).
cnf(associativity_of_lub,axiom,
least_upper_bound(X,least_upper_bound(Y,Z)) = least_upper_bound(least_upper_bound(X,Y),Z) ).
cnf(idempotence_of_lub,axiom,
least_upper_bound(X,X) = X ).
cnf(idempotence_of_gld,axiom,
greatest_lower_bound(X,X) = X ).
cnf(lub_absorbtion,axiom,
least_upper_bound(X,greatest_lower_bound(X,Y)) = X ).
cnf(glb_absorbtion,axiom,
greatest_lower_bound(X,least_upper_bound(X,Y)) = X ).
%----Monotony of multiply
cnf(monotony_lub1,axiom,
multiply(X,least_upper_bound(Y,Z)) = least_upper_bound(multiply(X,Y),multiply(X,Z)) ).
cnf(monotony_glb1,axiom,
multiply(X,greatest_lower_bound(Y,Z)) = greatest_lower_bound(multiply(X,Y),multiply(X,Z)) ).
cnf(monotony_lub2,axiom,
multiply(least_upper_bound(Y,Z),X) = least_upper_bound(multiply(Y,X),multiply(Z,X)) ).
cnf(monotony_glb2,axiom,
multiply(greatest_lower_bound(Y,Z),X) = greatest_lower_bound(multiply(Y,X),multiply(Z,X)) ).
%--------------------------------------------------------------------------
./GRP005-0.ax
%--------------------------------------------------------------------------
% File : GRP005-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Group Theory
% Axioms : Group theory axioms
% Version : [Ver92] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [Ver92] Veroff (1992), Email to G. Sutcliffe
% : [Ver93] Veroff (1993), Email to G. Sutcliffe
% Source : [Ver92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 7 ( 3 unt; 0 nHn; 4 RR)
% Number of literals : 17 ( 0 equ; 10 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 24 ( 0 sgn)
% SPC :
% Comments : [Ver93] pointed out that the traditional labelling of the
% closure and well_definedness axioms was wrong. The correct
% labelling indicates that product is a total function.
% : Note that the axioms of equality are dependent on this set!
% : These axioms are used in [Wos88] p.185.
%--------------------------------------------------------------------------
cnf(left_identity,axiom,
product(identity,X,X) ).
cnf(left_inverse,axiom,
product(inverse(X),X,identity) ).
%----This axiom is called closure or totality in some axiomatisations
cnf(total_function1,axiom,
product(X,Y,multiply(X,Y)) ).
%----This axiom is called well_definedness in some axiomatisations
cnf(total_function2,axiom,
( ~ product(X,Y,Z)
| ~ product(X,Y,W)
| equalish(Z,W) ) ).
cnf(associativity1,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W)
| product(X,V,W) ) ).
cnf(associativity2,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W)
| product(U,Z,W) ) ).
cnf(product_substitution3,axiom,
( ~ equalish(X,Y)
| ~ product(W,Z,X)
| product(W,Z,Y) ) ).
%--------------------------------------------------------------------------
./GRP006-0.ax
%--------------------------------------------------------------------------
% File : GRP006-0 : TPTP v8.2.0. Bugfixed v1.2.1.
% Domain : Group Theory (Named groups)
% Axioms : Group theory (Named groups) axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 5 unt; 0 nHn; 6 RR)
% Number of literals : 24 ( 1 equ; 13 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-4 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-3 aty)
% Number of variables : 36 ( 0 sgn)
% SPC :
% Comments : [Ver93] pointed out that the traditional labelling of the
% closure and well_definedness axioms was wrong. The correct
% labelling indicates that product is a total function.
% Bugfixes : v1.2.1 - Clause associativity1 fixed. This is a typo in
% [MOW76], and is wrong in [ANL].
%--------------------------------------------------------------------------
cnf(identity_in_group,axiom,
group_member(identity_for(Xg),Xg) ).
cnf(left_identity,axiom,
product(Xg,identity_for(Xg),X,X) ).
cnf(right_identity,axiom,
product(Xg,X,identity_for(Xg),X) ).
cnf(inverse_in_group,axiom,
( ~ group_member(X,Xg)
| group_member(inverse(Xg,X),Xg) ) ).
cnf(left_inverse,axiom,
product(Xg,inverse(Xg,X),X,identity_for(Xg)) ).
cnf(right_inverse,axiom,
product(Xg,X,inverse(Xg,X),identity_for(Xg)) ).
%----These axioms are called closure or totality in some axiomatisations
cnf(total_function1_1,axiom,
( ~ group_member(X,Xg)
| ~ group_member(Y,Xg)
| product(Xg,X,Y,multiply(Xg,X,Y)) ) ).
cnf(total_function1_2,axiom,
( ~ group_member(X,Xg)
| ~ group_member(Y,Xg)
| group_member(multiply(Xg,X,Y),Xg) ) ).
%----This axiom is called well_definedness in some axiomatisations
cnf(total_function2,axiom,
( ~ product(Xg,X,Y,Z)
| ~ product(Xg,X,Y,W)
| W = Z ) ).
cnf(associativity1,axiom,
( ~ product(Xg,X,Y,Xy)
| ~ product(Xg,Y,Z,Yz)
| ~ product(Xg,Xy,Z,Xyz)
| product(Xg,X,Yz,Xyz) ) ).
cnf(associativity2,axiom,
( ~ product(Xg,X,Y,Xy)
| ~ product(Xg,Y,Z,Yz)
| ~ product(Xg,X,Yz,Xyz)
| product(Xg,Xy,Z,Xyz) ) ).
%--------------------------------------------------------------------------
./GRP007+0.ax
%------------------------------------------------------------------------------
% File : GRP007+0 : TPTP v8.2.0. Released v2.0.0.
% Domain : Group Theory (Named Semigroups)
% Axioms : Group theory (Named Semigroups) axioms
% Version : [Gol93] axioms.
% English :
% Refs : [Gol93] Goller (1993), Anwendung des Theorembeweisers SETHEO a
% Source : [Gol93]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 0 unt; 0 def)
% Number of atoms : 7 ( 1 equ)
% Maximal formula atoms : 4 ( 3 avg)
% Number of connectives : 5 ( 0 ~; 0 |; 3 &)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 7 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 7 ( 7 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(total_function,axiom,
! [G,X,Y] :
( ( group_member(X,G)
& group_member(Y,G) )
=> group_member(multiply(G,X,Y),G) ) ).
fof(associativity,axiom,
! [G,X,Y,Z] :
( ( group_member(X,G)
& group_member(Y,G)
& group_member(Z,G) )
=> multiply(G,multiply(G,X,Y),Z) = multiply(G,X,multiply(G,Y,Z)) ) ).
%------------------------------------------------------------------------------
./GRP008-0.ax
%--------------------------------------------------------------------------
% File : GRP008-0 : TPTP v8.2.0. Released v2.2.0.
% Domain : Group Theory (Semigroups)
% Axioms : Semigroups axioms
% Version : [MP96] (equality) axioms.
% English :
% Refs : [McC98] McCune (1998), Email to G. Sutcliffe
% : [MP96] McCune & Padmanabhan (1996), Automated Deduction in Eq
% Source : [McC98]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 1 unt; 0 nHn; 0 RR)
% Number of literals : 1 ( 1 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 3 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Associativity:
cnf(associativity_of_multiply,axiom,
multiply(multiply(X,Y),Z) = multiply(X,multiply(Y,Z)) ).
%--------------------------------------------------------------------------
./GRP008-1.ax
%--------------------------------------------------------------------------
% File : GRP008-1 : TPTP v8.2.0. Released v2.2.0.
% Domain : Group Theory (Cancellative semigroups)
% Axioms : Cancellative semigroups axioms
% Version : [MP96] (equality) axioms.
% English :
% Refs : [McC98] McCune (1998), Email to G. Sutcliffe
% : [MP96] McCune & Padmanabhan (1996), Automated Deduction in Eq
% Source : [McC98]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 2 ( 0 unt; 0 nHn; 2 RR)
% Number of literals : 4 ( 4 equ; 2 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 6 ( 0 sgn)
% SPC :
% Comments : Requires GRP008-0.ax
%--------------------------------------------------------------------------
%----Left and right cancellation:
cnf(right_cancellation,axiom,
( multiply(A,B) != multiply(C,B)
| A = C ) ).
cnf(left_cancellation,axiom,
( multiply(A,B) != multiply(A,C)
| B = C ) ).
%--------------------------------------------------------------------------
Homological Algebra
./HAL001+0.ax
%--------------------------------------------------------------------------
% File : HAL001+0 : TPTP v8.2.0. Released v2.6.0.
% Domain : Homological Algebra
% Axioms : Standard homological algebra axioms
% Version : [TPTP] axioms.
% English :
% Refs : [Wei94] Weibel (1994), An Introduction to Homological Algebra
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 13 ( 0 unt; 0 def)
% Number of atoms : 66 ( 16 equ)
% Maximal formula atoms : 7 ( 5 avg)
% Number of connectives : 53 ( 0 ~; 0 |; 30 &)
% ( 2 <=>; 21 =>; 0 <=; 0 <~>)
% Maximal formula depth : 16 ( 10 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 7 ( 6 usr; 0 prp; 1-4 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-3 aty)
% Number of variables : 69 ( 65 !; 4 ?)
% SPC :
% Comments :
%--------------------------------------------------------------------------
fof(morphism,axiom,
! [Morphism,Dom,Cod] :
( morphism(Morphism,Dom,Cod)
=> ( ! [El] :
( element(El,Dom)
=> element(apply(Morphism,El),Cod) )
& apply(Morphism,zero(Dom)) = zero(Cod) ) ) ).
fof(injection_properties,axiom,
! [Morphism,Dom,Cod] :
( ( injection(Morphism)
& morphism(Morphism,Dom,Cod) )
=> ! [El1,El2] :
( ( element(El1,Dom)
& element(El2,Dom)
& apply(Morphism,El1) = apply(Morphism,El2) )
=> El1 = El2 ) ) ).
fof(properties_for_injection,axiom,
! [Morphism,Dom,Cod] :
( ( morphism(Morphism,Dom,Cod)
& ! [El1,El2] :
( ( element(El1,Dom)
& element(El2,Dom)
& apply(Morphism,El1) = apply(Morphism,El2) )
=> El1 = El2 ) )
=> injection(Morphism) ) ).
%----Sasha's weird injection axioms
% input_formula(injection_properties,axiom, (
% ! [Morphism,Dom,Cod] :
% ( ( injection(Morphism)
% & morphism(Morphism,Dom,Cod) )
% => ! [El] :
% ( ( element(El,Dom)
% & equal(apply(Morphism,El),zero(Cod)) )
% => equal(El,zero(Dom)) ) ) )).
%
% input_formula(properties_for_injection,axiom, (
% ! [Morphism,Dom,Cod] :
% ( ( morphism(Morphism,Dom,Cod)
% & ! [El] :
% ( ( element(El,Dom)
% & equal(apply(Morphism,El),zero(Cod)) )
% => equal(El,zero(Dom)) ) )
% => injection(Morphism) ) )).
fof(surjection_properties,axiom,
! [Morphism,Dom,Cod] :
( ( surjection(Morphism)
& morphism(Morphism,Dom,Cod) )
=> ! [ElCod] :
( element(ElCod,Cod)
=> ? [ElDom] :
( element(ElDom,Dom)
& apply(Morphism,ElDom) = ElCod ) ) ) ).
fof(properties_for_surjection,axiom,
! [Morphism,Dom,Cod] :
( ( morphism(Morphism,Dom,Cod)
& ! [ElCod] :
( element(ElCod,Cod)
=> ? [ElDom] :
( element(ElDom,Dom)
& apply(Morphism,ElDom) = ElCod ) ) )
=> surjection(Morphism) ) ).
fof(exact_properties,axiom,
! [Morphism1,Morphism2,Dom,CodDom,Cod] :
( ( exact(Morphism1,Morphism2)
& morphism(Morphism1,Dom,CodDom)
& morphism(Morphism2,CodDom,Cod) )
=> ! [ElCodDom] :
( ( element(ElCodDom,CodDom)
& apply(Morphism2,ElCodDom) = zero(Cod) )
<=> ? [ElDom] :
( element(ElDom,Dom)
& apply(Morphism1,ElDom) = ElCodDom ) ) ) ).
fof(properties_for_exact,axiom,
! [Morphism1,Morphism2,Dom,CodDom,Cod] :
( ( morphism(Morphism1,Dom,CodDom)
& morphism(Morphism2,CodDom,Cod)
& ! [ElCodDom] :
( ( element(ElCodDom,CodDom)
& apply(Morphism2,ElCodDom) = zero(Cod) )
<=> ? [ElDom] :
( element(ElDom,Dom)
& apply(Morphism1,ElDom) = ElCodDom ) ) )
=> exact(Morphism1,Morphism2) ) ).
fof(commute_properties,axiom,
! [M1,M2,M3,M4,Dom,DomCod1,DomCod2,Cod] :
( ( commute(M1,M2,M3,M4)
& morphism(M1,Dom,DomCod1)
& morphism(M2,DomCod1,Cod)
& morphism(M3,Dom,DomCod2)
& morphism(M4,DomCod2,Cod) )
=> ! [ElDom] :
( element(ElDom,Dom)
=> apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ).
fof(properties_for_commute,axiom,
! [M1,M2,M3,M4,Dom,DomCod1,DomCod2,Cod] :
( ( morphism(M1,Dom,DomCod1)
& morphism(M2,DomCod1,Cod)
& morphism(M3,Dom,DomCod2)
& morphism(M4,DomCod2,Cod)
& ! [ElDom] :
( element(ElDom,Dom)
=> apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
=> commute(M1,M2,M3,M4) ) ).
fof(subtract_in_domain,axiom,
! [Dom,El1,El2] :
( ( element(El1,Dom)
& element(El2,Dom) )
=> element(subtract(Dom,El1,El2),Dom) ) ).
fof(subtract_to_0,axiom,
! [Dom,El] :
( element(El,Dom)
=> subtract(Dom,El,El) = zero(Dom) ) ).
fof(subtract_cancellation,axiom,
! [Dom,El1,El2] :
( ( element(El1,Dom)
& element(El2,Dom) )
=> subtract(Dom,El1,subtract(Dom,El1,El2)) = El2 ) ).
fof(subtract_distribution,axiom,
! [Morphism,Dom,Cod] :
( morphism(Morphism,Dom,Cod)
=> ! [El1,El2] :
( ( element(El1,Dom)
& element(El2,Dom) )
=> apply(Morphism,subtract(Dom,El1,El2)) = subtract(Cod,apply(Morphism,El1),apply(Morphism,El2)) ) ) ).
%--------------------------------------------------------------------------
Henkin Models
./HEN001-0.ax
%--------------------------------------------------------------------------
% File : HEN001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Henkin Models
% Axioms : Henkin model axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 9 ( 3 unt; 0 nHn; 6 RR)
% Number of literals : 21 ( 2 equ; 12 neg)
% Maximal clause size : 6 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 3 ( 3 usr; 2 con; 0-2 aty)
% Number of variables : 25 ( 3 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----A0: definition of less than or equal to
cnf(quotient_less_equal,axiom,
( ~ less_equal(X,Y)
| quotient(X,Y,zero) ) ).
cnf(less_equal_quotient,axiom,
( ~ quotient(X,Y,zero)
| less_equal(X,Y) ) ).
%----A1: x/y <= x
cnf(divisor_existence,axiom,
( ~ quotient(X,Y,Z)
| less_equal(Z,X) ) ).
%----A2: (x/z) / (y/z) <= (x/y) / z
cnf(quotient_property,axiom,
( ~ quotient(X,Y,V1)
| ~ quotient(Y,Z,V2)
| ~ quotient(X,Z,V3)
| ~ quotient(V3,V2,V4)
| ~ quotient(V1,Z,V5)
| less_equal(V4,V5) ) ).
%----A3: 0 <= x
cnf(zero_is_smallest,axiom,
less_equal(zero,X) ).
%----A4: x <= y and y <= x implies that x = y
cnf(less_equal_and_equal,axiom,
( ~ less_equal(X,Y)
| ~ less_equal(Y,X)
| X = Y ) ).
%----A5: x <= identity (Thus an implicative model with unit 1)
cnf(identity_is_largest,axiom,
less_equal(X,identity) ).
%----closure of '/'
cnf(closure,axiom,
quotient(X,Y,divide(X,Y)) ).
%----'/' is well defined
cnf(well_defined,axiom,
( ~ quotient(X,Y,Z)
| ~ quotient(X,Y,W)
| Z = W ) ).
%--------------------------------------------------------------------------
./HEN002-0.ax
%--------------------------------------------------------------------------
% File : HEN002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Henkin Models
% Axioms : Henkin model axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 7 ( 4 unt; 0 nHn; 3 RR)
% Number of literals : 11 ( 3 equ; 4 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 2 con; 0-2 aty)
% Number of variables : 13 ( 3 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----A0: Definition of less_equal
cnf(quotient_less_equal1,axiom,
( ~ less_equal(X,Y)
| divide(X,Y) = zero ) ).
cnf(quotient_less_equal2,axiom,
( divide(X,Y) != zero
| less_equal(X,Y) ) ).
%----A1: x/y <= x
cnf(quotient_smaller_than_numerator,axiom,
less_equal(divide(X,Y),X) ).
%----A2: (x/z) / (y/z) <= (x/y) / z
cnf(quotient_property,axiom,
less_equal(divide(divide(X,Z),divide(Y,Z)),divide(divide(X,Y),Z)) ).
%----A3: 0<=x
cnf(zero_is_smallest,axiom,
less_equal(zero,X) ).
%----A4: x <= y and y <= x implies that x = y
cnf(less_equal_and_equal,axiom,
( ~ less_equal(X,Y)
| ~ less_equal(Y,X)
| X = Y ) ).
%----A5: x <= identity (Thus an implicative model with unit )
cnf(identity_is_largest,axiom,
less_equal(X,identity) ).
%----Implicit in equality formulation: '/' is well defined
%--------------------------------------------------------------------------
./HEN003-0.ax
%--------------------------------------------------------------------------
% File : HEN003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Henkin Models
% Axioms : Henkin model (equality) axioms
% Version : [MOW76] (equality) axioms :
% Reduced > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 5 ( 4 unt; 0 nHn; 1 RR)
% Number of literals : 7 ( 7 equ; 2 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 2 con; 0-2 aty)
% Number of variables : 9 ( 3 sgn)
% SPC :
% Comments : less_equal replaced by divides
%--------------------------------------------------------------------------
%----A0: Definition of less_equal, used to replace all occurrences
%----of less_equal(x,y)
%---- --less_equal(x,y) | (divide(x,y) = zero).
%---- (divide(x,y) != zero) | ++less_equal(x,y).
%----A1: x/y <= x
cnf(quotient_smaller_than_numerator,axiom,
divide(divide(X,Y),X) = zero ).
%----A2: (x/z) / (y/z) <= (x/y) / z
cnf(quotient_property,axiom,
divide(divide(divide(X,Z),divide(Y,Z)),divide(divide(X,Y),Z)) = zero ).
%----A3: 0<=x NOTE: this axiom is dependant
cnf(zero_is_smallest,axiom,
divide(zero,X) = zero ).
%----A4: x <= y and y <= x implies that x = y
cnf(divide_and_equal,axiom,
( divide(X,Y) != zero
| divide(Y,X) != zero
| X = Y ) ).
%----A5: x <= 1 (Thus an implicative model with unit )
cnf(identity_is_largest,axiom,
divide(X,identity) = zero ).
%----Implicit in equality formulation: '/' is well defined
%--------------------------------------------------------------------------
Hardware Creation
./HWC001-0.ax
%--------------------------------------------------------------------------
% File : HWC001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Hardware Creation
% Axioms : Definitions of AND, OR and NOT
% Version : [WO+92] axioms.
% Axiom formulation : Ground axioms.
% English :
% Refs : [WO+92] Wos et al. (1992), Automated Reasoning: Introduction a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 10 ( 10 unt; 0 nHn; 10 RR)
% Number of literals : 10 ( 10 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 0 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(and_definition1,axiom,
and(n0,n0) = n0 ).
cnf(and_definition2,axiom,
and(n0,n1) = n0 ).
cnf(and_definition3,axiom,
and(n1,n0) = n0 ).
cnf(and_definition4,axiom,
and(n1,n1) = n1 ).
cnf(or_definition1,axiom,
or(n0,n0) = n0 ).
cnf(or_definition2,axiom,
or(n0,n1) = n1 ).
cnf(or_definition3,axiom,
or(n1,n0) = n1 ).
cnf(or_definition4,axiom,
or(n1,n1) = n1 ).
cnf(not_definition1,axiom,
not(n0) = n1 ).
cnf(not_definition2,axiom,
not(n1) = n0 ).
%--------------------------------------------------------------------------
./HWC002-0.ax
%--------------------------------------------------------------------------
% File : HWC002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Hardware Creation
% Axioms : Definitions of AND, OR and NOT
% Version : [WO+92] axioms.
% Axiom formulation : Non-ground axioms.
% English :
% Refs : [WO+92] Wos et al. (1992), Automated Reasoning: Introduction a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 6 unt; 0 nHn; 2 RR)
% Number of literals : 6 ( 6 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 4 ( 2 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(and_definition1,axiom,
and(X,n0) = n0 ).
cnf(and_definition2,axiom,
and(X,n1) = X ).
cnf(or_definition1,axiom,
or(X,n0) = X ).
cnf(or_definition2,axiom,
or(X,n1) = n1 ).
cnf(not_definition1,axiom,
not(n0) = n1 ).
cnf(not_definition2,axiom,
not(n1) = n0 ).
%--------------------------------------------------------------------------
Hardware Verification
./HWV001-0.ax
%--------------------------------------------------------------------------
% File : HWV001-0 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Connections, faults, and gates.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 21 ( 2 unt; 3 nHn; 21 RR)
% Number of literals : 76 ( 0 equ; 55 neg)
% Maximal clause size : 5 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 5 ( 5 usr; 0 prp; 2-2 aty)
% Number of functors : 10 ( 10 usr; 8 con; 0-2 aty)
% Number of variables : 28 ( 3 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Properties of connections and values
cnf(value_propagation1,axiom,
( ~ connection(P1,P2)
| ~ value(P1,V)
| value(P2,V) ) ).
cnf(value_propagation2,axiom,
( ~ connection(P1,P2)
| ~ value(P2,V)
| value(P1,V) ) ).
cnf(unique_value,axiom,
( ~ value(P,V1)
| ~ value(P,V2)
| equal_value(V1,V2) ) ).
cnf(equal_value1,axiom,
~ equal_value(n0,n1) ).
cnf(equal_value2,axiom,
~ equal_value(n1,n0) ).
%----Fault model
cnf(not_ok_and_abnormal,axiom,
( ~ mode(K,ok)
| ~ mode(K,abnormal) ) ).
cnf(ok_or_abnormal,axiom,
( ~ type(K,Any)
| mode(K,ok)
| mode(K,abnormal) ) ).
%----AND gate
cnf(and_0x_0,axiom,
( ~ mode(K,ok)
| ~ type(K,and)
| ~ value(in(Any,K),n0)
| value(out(n1,K),n0) ) ).
cnf(and_11_1,axiom,
( ~ mode(K,ok)
| ~ type(K,and)
| ~ value(in(n1,K),n1)
| ~ value(in(n2,K),n1)
| value(out(n1,K),n1) ) ).
cnf(and_0_00,axiom,
( ~ mode(K,ok)
| ~ type(K,and)
| ~ value(out(n1,K),n0)
| value(in(n1,K),n0)
| value(in(n2,K),n0) ) ).
cnf(and_1_1x,axiom,
( ~ mode(K,ok)
| ~ type(K,and)
| ~ value(out(n1,K),n1)
| value(in(n1,K),n1) ) ).
cnf(and_1_x1,axiom,
( ~ mode(K,ok)
| ~ type(K,and)
| ~ value(out(n1,K),n1)
| value(in(n2,K),n1) ) ).
%----OR gate
cnf(or_1x_1,axiom,
( ~ mode(K,ok)
| ~ type(K,or)
| ~ value(in(Any,K),n1)
| value(out(n1,K),n1) ) ).
cnf(or_00_0,axiom,
( ~ mode(K,ok)
| ~ type(K,or)
| ~ value(in(n1,K),n0)
| ~ value(in(n2,K),n0)
| value(out(n1,K),n0) ) ).
cnf(or_1_11,axiom,
( ~ mode(K,ok)
| ~ type(K,or)
| ~ value(out(n1,K),n1)
| value(in(n1,K),n1)
| value(in(n2,K),n1) ) ).
cnf(or_0_0x,axiom,
( ~ mode(K,ok)
| ~ type(K,or)
| ~ value(out(n1,K),n0)
| value(in(n1,K),n0) ) ).
cnf(or_0_01,axiom,
( ~ mode(K,ok)
| ~ type(K,or)
| ~ value(out(n1,K),n0)
| value(in(n2,K),n0) ) ).
%----NOT gate
cnf(not_0_1_fw,axiom,
( ~ mode(K,ok)
| ~ type(K,not)
| ~ value(in(n1,K),n0)
| value(out(n1,K),n1) ) ).
cnf(not_1_0_fw,axiom,
( ~ mode(K,ok)
| ~ type(K,not)
| ~ value(in(n1,K),n1)
| value(out(n1,K),n0) ) ).
cnf(not_0_1_bw,axiom,
( ~ mode(K,ok)
| ~ type(K,not)
| ~ value(out(n1,K),n0)
| value(in(n1,K),n1) ) ).
cnf(not_1_0_bw,axiom,
( ~ mode(K,ok)
| ~ type(K,not)
| ~ value(out(n1,K),n1)
| value(in(n1,K),n0) ) ).
%--------------------------------------------------------------------------
./HWV001-1.ax
%--------------------------------------------------------------------------
% File : HWV001-1 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Half-adder.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 13 ( 0 unt; 0 nHn; 13 RR)
% Number of literals : 26 ( 0 equ; 13 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 14 ( 14 usr; 8 con; 0-2 aty)
% Number of variables : 13 ( 0 sgn)
% SPC :
% Comments : Requires HWV001-0.ax
%--------------------------------------------------------------------------
%----Composition of halfadder
cnf(halfadder_and1,axiom,
( ~ type(X,halfadder)
| type(and1(X),and) ) ).
cnf(halfadder_and2,axiom,
( ~ type(X,halfadder)
| type(and2(X),and) ) ).
cnf(halfadder_not1,axiom,
( ~ type(X,halfadder)
| type(not1(X),not) ) ).
cnf(halfadder_or1,axiom,
( ~ type(X,halfadder)
| type(or1(X),or) ) ).
%----Connections of halfadder
cnf(halfadder_connection_in1_in1or1,axiom,
( ~ type(X,halfadder)
| connection(in(n1,X),in(n1,or1(X))) ) ).
cnf(halfadder_connection_in2_in2or1,axiom,
( ~ type(X,halfadder)
| connection(in(n2,X),in(n2,or1(X))) ) ).
cnf(halfadder_connection_in1_in1and2,axiom,
( ~ type(X,halfadder)
| connection(in(n1,X),in(n1,and2(X))) ) ).
cnf(halfadder_connection_in2_in2and2,axiom,
( ~ type(X,halfadder)
| connection(in(n2,X),in(n2,and2(X))) ) ).
cnf(halfadder_connection_outs_out1and1,axiom,
( ~ type(X,halfadder)
| connection(out(s,X),out(n1,and1(X))) ) ).
cnf(halfadder_connection_outc_out1and2,axiom,
( ~ type(X,halfadder)
| connection(out(c,X),out(n1,and2(X))) ) ).
cnf(halfadder_connection_out1or1_in1_and1,axiom,
( ~ type(X,halfadder)
| connection(out(n1,or1(X)),in(n1,and1(X))) ) ).
cnf(halfadder_connection_out1and2_in1not1,axiom,
( ~ type(X,halfadder)
| connection(out(n1,and2(X)),in(n1,not1(X))) ) ).
cnf(halfadder_connection_out1not1_in2and1,axiom,
( ~ type(X,halfadder)
| connection(out(n1,not1(X)),in(n2,and1(X))) ) ).
%--------------------------------------------------------------------------
./HWV001-2.ax
%--------------------------------------------------------------------------
% File : HWV001-2 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Full-adder.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 0 unt; 0 nHn; 11 RR)
% Number of literals : 22 ( 0 equ; 11 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 12 ( 12 usr; 7 con; 0-2 aty)
% Number of variables : 11 ( 0 sgn)
% SPC :
% Comments : Requires HWV001-0.ax HWV001-1.ax
%--------------------------------------------------------------------------
%----Composition of fulladder
cnf(fulladder_halfadder1,axiom,
( ~ type(X,fulladder)
| type(h1(X),halfadder) ) ).
cnf(fulladder_halfadder2,axiom,
( ~ type(X,fulladder)
| type(h2(X),halfadder) ) ).
cnf(fulladder_or1,axiom,
( ~ type(X,fulladder)
| type(or1(X),or) ) ).
%----Connections of fulladder
cnf(fulladder_connection_outsh1_in2h2,axiom,
( ~ type(X,fulladder)
| connection(out(s,h1(X)),in(n2,h2(X))) ) ).
cnf(fulladder_connection_outch1_in2or1,axiom,
( ~ type(X,fulladder)
| connection(out(c,h1(X)),in(n2,or1(X))) ) ).
cnf(fulladder_connection_outch2_in1or1,axiom,
( ~ type(X,fulladder)
| connection(out(c,h2(X)),in(n1,or1(X))) ) ).
cnf(fulladder_connection_in1_in1h2,axiom,
( ~ type(X,fulladder)
| connection(in(n1,X),in(n1,h2(X))) ) ).
cnf(fulladder_connection_in2_in1h1,axiom,
( ~ type(X,fulladder)
| connection(in(n2,X),in(n1,h1(X))) ) ).
cnf(fulladder_connection_inc_in2h1,axiom,
( ~ type(X,fulladder)
| connection(in(c,X),in(n2,h1(X))) ) ).
cnf(fulladder_connection_outs_outsh2,axiom,
( ~ type(X,fulladder)
| connection(out(s,X),out(s,h2(X))) ) ).
cnf(fulladder_connection_outc_out1or1,axiom,
( ~ type(X,fulladder)
| connection(out(c,X),out(n1,or1(X))) ) ).
%--------------------------------------------------------------------------
./HWV002-0.ax
%--------------------------------------------------------------------------
% File : HWV002-0 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Connections, faults, and gates.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 27 ( 0 unt; 5 nHn; 27 RR)
% Number of literals : 81 ( 0 equ; 53 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 10 ( 10 usr; 0 prp; 1-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-1 aty)
% Number of variables : 31 ( 0 sgn)
% SPC :
% Comments :
% Bugfixes : v2.7.0 - Fixed clause not_ok_or_abnormal
%--------------------------------------------------------------------------
%----Properties of connections and values
cnf(value_propagation_zero1,axiom,
( ~ connection(P1,P2)
| ~ zero(P1)
| zero(P2) ) ).
cnf(value_propagation_one1,axiom,
( ~ connection(P1,P2)
| ~ one(P1)
| one(P2) ) ).
cnf(value_propagation_zero2,axiom,
( ~ connection(P1,P2)
| ~ zero(P2)
| zero(P1) ) ).
cnf(value_propagation_one2,axiom,
( ~ connection(P1,P2)
| ~ one(P2)
| one(P1) ) ).
cnf(unique_value,axiom,
( ~ zero(P)
| ~ one(P) ) ).
%----AND gate
cnf(and_0x_0,axiom,
( ~ and_ok(K)
| ~ zero(in1(K))
| zero(out1(K)) ) ).
cnf(and_x0_0,axiom,
( ~ and_ok(K)
| ~ zero(in2(K))
| zero(out1(K)) ) ).
cnf(and_11_1,axiom,
( ~ and_ok(K)
| ~ one(in1(K))
| ~ one(in2(K))
| one(out1(K)) ) ).
cnf(and_0_00,axiom,
( ~ and_ok(K)
| ~ zero(out1(K))
| zero(in1(K))
| zero(in2(K)) ) ).
cnf(and_1_1x,axiom,
( ~ and_ok(K)
| ~ one(out1(K))
| one(in1(K)) ) ).
cnf(and_1_x1,axiom,
( ~ and_ok(K)
| ~ one(out1(K))
| one(in2(K)) ) ).
%----Fault model for AND
cnf(not_and_ok_and_abnormal,axiom,
( ~ and_ok(K)
| ~ abnormal(K) ) ).
cnf(and_ok_or_abnormal,axiom,
( ~ logic_and(K)
| and_ok(K)
| abnormal(K) ) ).
%----OR gate
cnf(or_1x_1,axiom,
( ~ or_ok(K)
| ~ one(in1(K))
| one(out1(K)) ) ).
cnf(or_x1_1,axiom,
( ~ or_ok(K)
| ~ one(in2(K))
| one(out1(K)) ) ).
cnf(or_00_0,axiom,
( ~ or_ok(K)
| ~ zero(in1(K))
| ~ zero(in2(K))
| zero(out1(K)) ) ).
cnf(or_1_11,axiom,
( ~ or_ok(K)
| ~ one(out1(K))
| one(in1(K))
| one(in2(K)) ) ).
cnf(or_0_0x,axiom,
( ~ or_ok(K)
| ~ zero(out1(K))
| zero(in1(K)) ) ).
cnf(or_0_01,axiom,
( ~ or_ok(K)
| ~ zero(out1(K))
| zero(in2(K)) ) ).
%----Fault model for OR
cnf(not_or_ok_and_abnormal,axiom,
( ~ or_ok(K)
| ~ abnormal(K) ) ).
cnf(or_ok_or_abnormal,axiom,
( ~ logic_or(K)
| or_ok(K)
| abnormal(K) ) ).
%----NOT gate
cnf(not_0_1_fw,axiom,
( ~ not_ok(K)
| ~ zero(in1(K))
| one(out1(K)) ) ).
cnf(not_1_0_fw,axiom,
( ~ not_ok(K)
| ~ one(in1(K))
| zero(out1(K)) ) ).
cnf(not_0_1_bw,axiom,
( ~ not_ok(K)
| ~ zero(out1(K))
| one(in1(K)) ) ).
cnf(not_1_0_bw,axiom,
( ~ not_ok(K)
| ~ one(out1(K))
| zero(in1(K)) ) ).
%----Fault model for NOT
cnf(not__not_ok_and_abnormal,axiom,
( ~ not_ok(K)
| ~ abnormal(K) ) ).
cnf(not_ok_or_abnormal,axiom,
( ~ logic_not(K)
| not_ok(K)
| abnormal(K) ) ).
%--------------------------------------------------------------------------
./HWV002-1.ax
%--------------------------------------------------------------------------
% File : HWV002-1 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Half-adder.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 13 ( 0 unt; 0 nHn; 13 RR)
% Number of literals : 26 ( 0 equ; 13 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 5 ( 5 usr; 0 prp; 1-2 aty)
% Number of functors : 9 ( 9 usr; 0 con; 1-1 aty)
% Number of variables : 13 ( 0 sgn)
% SPC :
% Comments : Requires HWV002-0.ax
%--------------------------------------------------------------------------
%----Composition of halfadder
cnf(halfadder_and1,axiom,
( ~ halfadder(X)
| logic_and(and1(X)) ) ).
cnf(halfadder_and2,axiom,
( ~ halfadder(X)
| logic_and(and2(X)) ) ).
cnf(halfadder_not1,axiom,
( ~ halfadder(X)
| logic_not(not1(X)) ) ).
cnf(halfadder_or1,axiom,
( ~ halfadder(X)
| logic_or(or1(X)) ) ).
%----Connections of halfadder
cnf(halfadder_connection_in1_in1or1,axiom,
( ~ halfadder(X)
| connection(in1(X),in1(or1(X))) ) ).
cnf(halfadder_connection_in2_in2or1,axiom,
( ~ halfadder(X)
| connection(in2(X),in2(or1(X))) ) ).
cnf(halfadder_connection_in1_in1and2,axiom,
( ~ halfadder(X)
| connection(in1(X),in1(and2(X))) ) ).
cnf(halfadder_connection_in2_in2and2,axiom,
( ~ halfadder(X)
| connection(in2(X),in2(and2(X))) ) ).
cnf(halfadder_connection_outs_out1and1,axiom,
( ~ halfadder(X)
| connection(outs(X),out1(and1(X))) ) ).
cnf(halfadder_connection_outc_out1and2,axiom,
( ~ halfadder(X)
| connection(outc(X),out1(and2(X))) ) ).
cnf(halfadder_connection_out1or1_in1_and1,axiom,
( ~ halfadder(X)
| connection(out1(or1(X)),in1(and1(X))) ) ).
cnf(halfadder_connection_out1and2_in1not1,axiom,
( ~ halfadder(X)
| connection(out1(and2(X)),in1(not1(X))) ) ).
cnf(halfadder_connection_out1not1_in2and1,axiom,
( ~ halfadder(X)
| connection(out1(not1(X)),in2(and1(X))) ) ).
%--------------------------------------------------------------------------
./HWV002-2.ax
%--------------------------------------------------------------------------
% File : HWV002-2 : TPTP v8.2.0. Released .0.
% Domain : Hardware Verification
% Axioms : Full-adder.
% Version : [Gei96] axioms.
% English :
% Refs : [Gei96] Geisler (1996), Email to G. Sutcliffe
% Source : [Gei96]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 0 unt; 0 nHn; 11 RR)
% Number of literals : 22 ( 0 equ; 11 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 1-2 aty)
% Number of functors : 9 ( 9 usr; 0 con; 1-1 aty)
% Number of variables : 11 ( 0 sgn)
% SPC :
% Comments : Requires HWV002-0.ax HWV002-1.ax
%--------------------------------------------------------------------------
%----Composition of fulladder
cnf(fulladder_halfadder1,axiom,
( ~ fulladder(X)
| halfadder(h1(X)) ) ).
cnf(fulladder_halfadder2,axiom,
( ~ fulladder(X)
| halfadder(h2(X)) ) ).
cnf(fulladder_or1,axiom,
( ~ fulladder(X)
| logic_or(or1(X)) ) ).
%----Connections of fulladder
cnf(fulladder_connection_outsh1_in2h2,axiom,
( ~ fulladder(X)
| connection(outs(h1(X)),in2(h2(X))) ) ).
cnf(fulladder_connection_outch1_in2or1,axiom,
( ~ fulladder(X)
| connection(outc(h1(X)),in2(or1(X))) ) ).
cnf(fulladder_connection_outch2_in1or1,axiom,
( ~ fulladder(X)
| connection(outc(h2(X)),in1(or1(X))) ) ).
cnf(fulladder_connection_in1_in1h2,axiom,
( ~ fulladder(X)
| connection(in1(X),in1(h2(X))) ) ).
cnf(fulladder_connection_in2_in1h1,axiom,
( ~ fulladder(X)
| connection(in2(X),in1(h1(X))) ) ).
cnf(fulladder_connection_inc_in2h1,axiom,
( ~ fulladder(X)
| connection(inc(X),in2(h1(X))) ) ).
cnf(fulladder_connection_outs_outsh2,axiom,
( ~ fulladder(X)
| connection(outs(X),outs(h2(X))) ) ).
cnf(fulladder_connection_outc_out1or1,axiom,
( ~ fulladder(X)
| connection(outc(X),out1(or1(X))) ) ).
%--------------------------------------------------------------------------
./HWV003-0.ax
Very long 573
./HWV004-0.ax
Very long 706
Kleene Algebra
./KLE001+0.ax
%------------------------------------------------------------------------------
% File : KLE001+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Idempotent semirings
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 12 ( 11 unt; 0 def)
% Number of atoms : 13 ( 12 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 1 ( 0 ~; 0 |; 0 &)
% ( 1 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 22 ( 22 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Additive idempotent monoid
fof(additive_commutativity,axiom,
! [A,B] : addition(A,B) = addition(B,A) ).
fof(additive_associativity,axiom,
! [C,B,A] : addition(A,addition(B,C)) = addition(addition(A,B),C) ).
fof(additive_identity,axiom,
! [A] : addition(A,zero) = A ).
fof(additive_idempotence,axiom,
! [A] : addition(A,A) = A ).
%----Multiplicative and commutative monoid
fof(multiplicative_associativity,axiom,
! [A,B,C] : multiplication(A,multiplication(B,C)) = multiplication(multiplication(A,B),C) ).
fof(multiplicative_right_identity,axiom,
! [A] : multiplication(A,one) = A ).
fof(multiplicative_left_identity,axiom,
! [A] : multiplication(one,A) = A ).
%----Distributivity laws
fof(right_distributivity,axiom,
! [A,B,C] : multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)) ).
fof(left_distributivity,axiom,
! [A,B,C] : multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)) ).
%----Annihilation
fof(right_annihilation,axiom,
! [A] : multiplication(A,zero) = zero ).
fof(left_annihilation,axiom,
! [A] : multiplication(zero,A) = zero ).
%----Order
fof(order,axiom,
! [A,B] :
( leq(A,B)
<=> addition(A,B) = B ) ).
%------------------------------------------------------------------------------
./KLE001+1.ax
%------------------------------------------------------------------------------
% File : KLE001+1 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Characterisation of tests by complement predicate
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 0 unt; 0 def)
% Number of atoms : 11 ( 5 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 8 ( 1 ~; 0 |; 2 &)
% ( 3 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 1-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 7 ( 6 !; 1 ?)
% SPC :
% Comments : Requires KLE001+0.ax, KLE002+0.ax or KLE003+0.ax
% : Combined with KLE001+0 generates Idempotent semirings with tests
% Combined with KLE002+0 generates Kleene Algebra with tests
% Combined with KLE003+0 generates Omega Algebra with tests
%------------------------------------------------------------------------------
fof(test_1,axiom,
! [X0] :
( test(X0)
<=> ? [X1] : complement(X1,X0) ) ).
fof(test_2,axiom,
! [X0,X1] :
( complement(X1,X0)
<=> ( multiplication(X0,X1) = zero
& multiplication(X1,X0) = zero
& addition(X0,X1) = one ) ) ).
fof(test_3,axiom,
! [X0,X1] :
( test(X0)
=> ( c(X0) = X1
<=> complement(X0,X1) ) ) ).
fof(test_4,axiom,
! [X0] :
( ~ test(X0)
=> c(X0) = zero ) ).
%------------------------------------------------------------------------------
./KLE001+2.ax
%------------------------------------------------------------------------------
% File : KLE001+2 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : de Morgan's laws for tests
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 0 unt; 0 def)
% Number of atoms : 6 ( 2 equ)
% Maximal formula atoms : 3 ( 3 avg)
% Number of connectives : 4 ( 0 ~; 0 |; 2 &)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 5 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 4 ( 4 !; 0 ?)
% SPC :
% Comments : Requires KLE001+1.ax
%------------------------------------------------------------------------------
fof(test_deMorgan1,axiom,
! [X0,X1] :
( ( test(X0)
& test(X1) )
=> c(addition(X0,X1)) = multiplication(c(X0),c(X1)) ) ).
fof(test_deMorgan2,axiom,
! [X0,X1] :
( ( test(X0)
& test(X1) )
=> c(multiplication(X0,X1)) = addition(c(X0),c(X1)) ) ).
%------------------------------------------------------------------------------
./KLE001+3.ax
%------------------------------------------------------------------------------
% File : KLE001+3 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Universal characterisation of meet
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 0 unt; 0 def)
% Number of atoms : 10 ( 0 equ)
% Maximal formula atoms : 6 ( 5 avg)
% Number of connectives : 8 ( 0 ~; 0 |; 4 &)
% ( 3 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 9 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 2-3 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 8 ( 8 !; 0 ?)
% SPC :
% Comments : Requires KLE001+0.ax, KLE002+0.ax or KLE003+0.ax
%------------------------------------------------------------------------------
fof(ismeet,axiom,
! [X0,X1,X2] :
( ismeet(X2,X0,X1)
<=> ( leq(X2,X0)
& leq(X2,X1)
& ! [X3] :
( ( leq(X3,X0)
& leq(X3,X1) )
=> leq(X3,X2) ) ) ) ).
fof(ismeetu,axiom,
! [X0,X1,X2] :
( ismeetu(X2,X0,X1)
<=> ! [X3] :
( ( leq(X3,X0)
& leq(X3,X1) )
<=> leq(X3,X2) ) ) ).
%------------------------------------------------------------------------------
./KLE001+4.ax
%------------------------------------------------------------------------------
% File : KLE001+4 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Boolean domain, antidomain, codomain, coantidomain
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 8 unt; 0 def)
% Number of atoms : 8 ( 8 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 3 ( 2 avg)
% Maximal term depth : 6 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 8 ( 8 usr; 2 con; 0-2 aty)
% Number of variables : 10 ( 10 !; 0 ?)
% SPC :
% Comments : Requires KLE001+0.ax, KLE002+0.ax or KLE003+0.ax
% : With KLE001+0 generates Idempotent semirings with domain/codomain
% With KLE002+0 generates Kleene Algebra with domain domain/codomain
% With KLE003+0 generates Omega Algebra with domain/codomain
%------------------------------------------------------------------------------
%----Boolean domain axioms (a la Desharnais & Struth)
fof(domain1,axiom,
! [X0] : multiplication(antidomain(X0),X0) = zero ).
fof(domain2,axiom,
! [X0,X1] : addition(antidomain(multiplication(X0,X1)),antidomain(multiplication(X0,antidomain(antidomain(X1))))) = antidomain(multiplication(X0,antidomain(antidomain(X1)))) ).
fof(domain3,axiom,
! [X0] : addition(antidomain(antidomain(X0)),antidomain(X0)) = one ).
fof(domain4,axiom,
! [X0] : domain(X0) = antidomain(antidomain(X0)) ).
%----Boolean codomain axioms (a la Desharnais & Struth)
fof(codomain1,axiom,
! [X0] : multiplication(X0,coantidomain(X0)) = zero ).
fof(codomain2,axiom,
! [X0,X1] : addition(coantidomain(multiplication(X0,X1)),coantidomain(multiplication(coantidomain(coantidomain(X0)),X1))) = coantidomain(multiplication(coantidomain(coantidomain(X0)),X1)) ).
fof(codomain3,axiom,
! [X0] : addition(coantidomain(coantidomain(X0)),coantidomain(X0)) = one ).
fof(codomain4,axiom,
! [X0] : codomain(X0) = coantidomain(coantidomain(X0)) ).
%------------------------------------------------------------------------------
./KLE001+5.ax
%------------------------------------------------------------------------------
% File : KLE001+5 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Domain (not Boolean domain!)
% Version : [Hoe08] axioms.
% English :
% Refs : [DS08] Desharnais & Struth (2008), Modal Semirings Revisited
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 5 unt; 0 def)
% Number of atoms : 5 ( 5 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 3 ( 2 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 6 ( 6 !; 0 ?)
% SPC :
% Comments : The domain algebra is not necessarily Boolean
% : Requires KLE001+0.ax, KLE002+0.ax or KLE003+0.ax
% : Combined with KLE001+0 generates Idempotent semirings with tests
% Combined with KLE002+0 generates Kleene Algebra with tests
% Combined with KLE003+0 generates Omega Algebra with tests
%------------------------------------------------------------------------------
%----Domain axioms (a la Desharnais & Struth)
fof(domain1,axiom,
! [X0] : addition(X0,multiplication(domain(X0),X0)) = multiplication(domain(X0),X0) ).
fof(domain2,axiom,
! [X0,X1] : domain(multiplication(X0,X1)) = domain(multiplication(X0,domain(X1))) ).
fof(domain3,axiom,
! [X0] : addition(domain(X0),one) = one ).
fof(domain4,axiom,
domain(zero) = zero ).
fof(domain5,axiom,
! [X0,X1] : domain(addition(X0,X1)) = addition(domain(X0),domain(X1)) ).
%------------------------------------------------------------------------------
./KLE001+6.ax
%------------------------------------------------------------------------------
% File : KLE001+6 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Modal operators
% Version : [Hoe08] axioms.
% English :
% Refs : [DMS06] Desharnais et al. (2006), Kleene Algebra with Domain
% : [MS06] Moeller & Struth (2006), Algebras of Modal Operators a
% : [DS08] Desharnais & Struth (2008), Modal Semirings Revisited
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 6 unt; 0 def)
% Number of atoms : 6 ( 6 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 3 ( 3 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 10 ( 10 usr; 0 con; 1-2 aty)
% Number of variables : 11 ( 11 !; 0 ?)
% SPC :
% Comments : Requires KLE001+4.ax
% : With KLE001+0 and KLE001+4.ax generates modal semirings
% With KLE002+0 and KLE001+4.ax generates modal Kleene Algebra
% With KLE003+0 and KLE001+4.ax generates modal Omega Algebra
% : Defines forward/backward box and diamond (and domain).
%------------------------------------------------------------------------------
%----Standard axioms for forward/backward box and diamond
fof(complement,axiom,
! [X0] : c(X0) = antidomain(domain(X0)) ).
fof(domain_difference,axiom,
! [X0,X1] : domain_difference(X0,X1) = multiplication(domain(X0),antidomain(X1)) ).
fof(forward_diamond,axiom,
! [X0,X1] : forward_diamond(X0,X1) = domain(multiplication(X0,domain(X1))) ).
fof(backward_diamond,axiom,
! [X0,X1] : backward_diamond(X0,X1) = codomain(multiplication(codomain(X1),X0)) ).
fof(forward_box,axiom,
! [X0,X1] : forward_box(X0,X1) = c(forward_diamond(X0,c(X1))) ).
fof(backward_box,axiom,
! [X0,X1] : backward_box(X0,X1) = c(backward_diamond(X0,c(X1))) ).
%------------------------------------------------------------------------------
./KLE001+7.ax
%------------------------------------------------------------------------------
% File : KLE001+7 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Divergence Kleene algebras
% Version : [Hoe08] axioms.
% English :
% Refs : [DMS04] Desharnais et al. (2004), Termination in Modal Kleene
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 1 unt; 0 def)
% Number of atoms : 3 ( 3 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 1 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 4 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 0 con; 1-2 aty)
% Number of variables : 4 ( 4 !; 0 ?)
% SPC :
% Comments : Requires KLE001+6.ax KLE002+0.ax
% : Based on modal Kleene Algebra
%------------------------------------------------------------------------------
fof(divergence1,axiom,
! [X0] : forward_diamond(X0,divergence(X0)) = divergence(X0) ).
fof(divergence2,axiom,
! [X0,X1,X2] :
( addition(domain(X0),addition(forward_diamond(X1,domain(X0)),domain(X2))) = addition(forward_diamond(X1,domain(X0)),domain(X2))
=> addition(domain(X0),addition(divergence(X1),forward_diamond(star(X1),domain(X2)))) = addition(divergence(X1),forward_diamond(star(X1),domain(X2))) ) ).
%------------------------------------------------------------------------------
./KLE002+0.ax
%------------------------------------------------------------------------------
% File : KLE002+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene algebra
% Axioms : Kleene algebra
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 16 ( 13 unt; 0 def)
% Number of atoms : 19 ( 12 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 3 ( 0 ~; 0 |; 0 &)
% ( 1 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 3 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 30 ( 30 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Additive idempotent monoid
fof(additive_commutativity,axiom,
! [A,B] : addition(A,B) = addition(B,A) ).
fof(additive_associativity,axiom,
! [C,B,A] : addition(A,addition(B,C)) = addition(addition(A,B),C) ).
fof(additive_identity,axiom,
! [A] : addition(A,zero) = A ).
fof(additive_idempotence,axiom,
! [A] : addition(A,A) = A ).
%----Multiplicative and commutative monoid
fof(multiplicative_associativity,axiom,
! [A,B,C] : multiplication(A,multiplication(B,C)) = multiplication(multiplication(A,B),C) ).
fof(multiplicative_right_identity,axiom,
! [A] : multiplication(A,one) = A ).
fof(multiplicative_left_identity,axiom,
! [A] : multiplication(one,A) = A ).
%----Distributivity laws
fof(right_distributivity,axiom,
! [A,B,C] : multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)) ).
fof(left_distributivity,axiom,
! [A,B,C] : multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)) ).
%----Annihilation
fof(right_annihilation,axiom,
! [A] : multiplication(A,zero) = zero ).
fof(left_annihilation,axiom,
! [A] : multiplication(zero,A) = zero ).
%----Order
fof(order,axiom,
! [A,B] :
( leq(A,B)
<=> addition(A,B) = B ) ).
%----Finite iteration (star)
%----Unfold laws
fof(star_unfold_right,axiom,
! [A] : leq(addition(one,multiplication(A,star(A))),star(A)) ).
fof(star_unfold_left,axiom,
! [A] : leq(addition(one,multiplication(star(A),A)),star(A)) ).
%----Induction laws
fof(star_induction_left,axiom,
! [A,B,C] :
( leq(addition(multiplication(A,B),C),B)
=> leq(multiplication(star(A),C),B) ) ).
fof(star_induction_right,axiom,
! [A,B,C] :
( leq(addition(multiplication(A,B),C),A)
=> leq(multiplication(C,star(B)),A) ) ).
%------------------------------------------------------------------------------
./KLE003+0.ax
%------------------------------------------------------------------------------
% File : KLE003+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Omega algebra
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 14 unt; 0 def)
% Number of atoms : 22 ( 13 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 4 ( 0 ~; 0 |; 0 &)
% ( 1 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 3 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-2 aty)
% Number of variables : 34 ( 34 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Additive idempotent monoid
fof(additive_commutativity,axiom,
! [A,B] : addition(A,B) = addition(B,A) ).
fof(additive_associativity,axiom,
! [C,B,A] : addition(A,addition(B,C)) = addition(addition(A,B),C) ).
fof(additive_identity,axiom,
! [A] : addition(A,zero) = A ).
fof(additive_idempotence,axiom,
! [A] : addition(A,A) = A ).
%----Multiplicative and commutative monoid
fof(multiplicative_associativity,axiom,
! [A,B,C] : multiplication(A,multiplication(B,C)) = multiplication(multiplication(A,B),C) ).
fof(multiplicative_right_identity,axiom,
! [A] : multiplication(A,one) = A ).
fof(multiplicative_left_identity,axiom,
! [A] : multiplication(one,A) = A ).
%----Distributivity laws
fof(right_distributivity,axiom,
! [A,B,C] : multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)) ).
fof(left_distributivity,axiom,
! [A,B,C] : multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)) ).
%----Annihilation
fof(right_annihilation,axiom,
! [A] : multiplication(A,zero) = zero ).
fof(left_annihilation,axiom,
! [A] : multiplication(zero,A) = zero ).
%----Order
fof(order,axiom,
! [A,B] :
( leq(A,B)
<=> addition(A,B) = B ) ).
%----Finite iteration (star)
%----Unfold laws
fof(star_unfold_right,axiom,
! [A] : leq(addition(one,multiplication(A,star(A))),star(A)) ).
fof(star_unfold_left,axiom,
! [A] : leq(addition(one,multiplication(star(A),A)),star(A)) ).
%----Induction laws
fof(star_induction_left,axiom,
! [A,B,C] :
( leq(addition(multiplication(A,B),C),B)
=> leq(multiplication(star(A),C),B) ) ).
fof(star_induction_right,axiom,
! [A,B,C] :
( leq(addition(multiplication(A,B),C),A)
=> leq(multiplication(C,star(B)),A) ) ).
%----Infinite iteration (omega)
%----Unfold law
fof(omega_unfold,axiom,
! [A] : multiplication(A,omega(A)) = omega(A) ).
%----Co-Induction law
fof(omega_co_induction,axiom,
! [A,B,C] :
( leq(A,addition(multiplication(B,A),C))
=> leq(A,addition(omega(B),multiplication(star(B),C))) ) ).
%------------------------------------------------------------------------------
./KLE004+0.ax
%------------------------------------------------------------------------------
% File : KLE004+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Kleene Algebra
% Axioms : Demonic Refinement Algebra
% Version : [Hoe08] axioms.
% English :
% Refs : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 14 unt; 0 def)
% Number of atoms : 22 ( 15 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 4 ( 0 ~; 0 |; 0 &)
% ( 1 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 3 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-2 aty)
% Number of variables : 34 ( 34 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Additive idempotent monoid
fof(additive_commutativity,axiom,
! [A,B] : addition(A,B) = addition(B,A) ).
fof(additive_associativity,axiom,
! [C,B,A] : addition(A,addition(B,C)) = addition(addition(A,B),C) ).
fof(additive_identity,axiom,
! [A] : addition(A,zero) = A ).
fof(idempotence,axiom,
! [A] : addition(A,A) = A ).
%----Multiplicative and commutative monoid
fof(multiplicative_associativity,axiom,
! [A,B,C] : multiplication(A,multiplication(B,C)) = multiplication(multiplication(A,B),C) ).
fof(multiplicative_right_identity,axiom,
! [A] : multiplication(A,one) = A ).
fof(multiplicative_left_identity,axiom,
! [A] : multiplication(one,A) = A ).
%----Distributivity laws
fof(distributivity1,axiom,
! [A,B,C] : multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)) ).
fof(distributivity2,axiom,
! [A,B,C] : multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)) ).
%----Annihilation (right zero law)
fof(left_annihilation,axiom,
! [A] : multiplication(zero,A) = zero ).
%----Kleene star
fof(star_unfold1,axiom,
! [A] : addition(one,multiplication(A,star(A))) = star(A) ).
fof(star_unfold2,axiom,
! [A] : addition(one,multiplication(star(A),A)) = star(A) ).
fof(star_induction1,axiom,
! [A,B,C] :
( leq(addition(multiplication(A,C),B),C)
=> leq(multiplication(star(A),B),C) ) ).
fof(star_induction2,axiom,
! [A,B,C] :
( leq(addition(multiplication(C,A),B),C)
=> leq(multiplication(B,star(A)),C) ) ).
%----Strong iteration
fof(infty_unfold1,axiom,
! [A] : strong_iteration(A) = addition(multiplication(A,strong_iteration(A)),one) ).
fof(infty_coinduction,axiom,
! [A,B,C] :
( leq(C,addition(multiplication(A,C),B))
=> leq(C,multiplication(strong_iteration(A),B)) ) ).
fof(isolation,axiom,
! [A] : strong_iteration(A) = addition(star(A),multiplication(strong_iteration(A),zero)) ).
%----Ordering
fof(order,axiom,
! [A,B] :
( leq(A,B)
<=> addition(A,B) = B ) ).
%------------------------------------------------------------------------------
Knowledge Representation
./KRS001+0.ax
%------------------------------------------------------------------------------
% File : KRS001+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Knowledge Representation
% Axioms : SZS success ontology nodes
% Version : [Sut08] axioms.
% English :
% Refs : [Sut08] Sutcliffe (2008), The SZS Ontologies for Automated Rea
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 19 ( 0 unt; 0 def)
% Number of atoms : 70 ( 0 equ)
% Maximal formula atoms : 7 ( 3 avg)
% Number of connectives : 63 ( 12 ~; 0 |; 24 &)
% ( 22 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 20 ( 20 usr; 19 con; 0-1 aty)
% Number of variables : 77 ( 49 !; 28 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(unp,axiom,
! [Ax,C] :
( ( ~ ? [I1] : model(I1,Ax)
=> ~ ? [I2] : model(I2,C) )
<=> status(Ax,C,unp) ) ).
fof(sap,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
=> ? [I2] : model(I2,C) )
<=> status(Ax,C,sap) ) ).
fof(esa,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
<=> ? [I2] : model(I2,C) )
<=> status(Ax,C,esa) ) ).
fof(sat,axiom,
! [Ax,C] :
( ? [I1] :
( model(I1,Ax)
& model(I1,C) )
<=> status(Ax,C,sat) ) ).
fof(thm,axiom,
! [Ax,C] :
( ! [I1] :
( model(I1,Ax)
=> model(I1,C) )
<=> status(Ax,C,thm) ) ).
fof(eqv,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ! [I2] :
( model(I2,Ax)
<=> model(I2,C) ) )
<=> status(Ax,C,eqv) ) ).
fof(tac,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ! [I2] : model(I2,C) )
<=> status(Ax,C,tac) ) ).
fof(wec,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ! [I2] :
( model(I2,Ax)
=> model(I2,C) )
& ? [I3] :
( model(I3,C)
& ~ model(I3,Ax) ) )
<=> status(Ax,C,wec) ) ).
fof(eth,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ? [I2] : ~ model(I2,Ax)
& ! [I3] :
( model(I3,Ax)
<=> model(I3,C) ) )
<=> status(Ax,C,eth) ) ).
fof(tau,axiom,
! [Ax,C] :
( ! [I1] :
( model(I1,Ax)
& model(I1,C) )
<=> status(Ax,C,tau) ) ).
fof(wtc,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ? [I2] : ~ model(I2,Ax)
& ! [I3] : model(I3,C) )
<=> status(Ax,C,wtc) ) ).
fof(wth,axiom,
! [Ax,C] :
( ( ? [I1] : model(I1,Ax)
& ! [I2] :
( model(I2,Ax)
=> model(I2,C) )
& ? [I3] :
( model(I3,C)
& ~ model(I3,Ax) )
& ? [I4] : ~ model(I4,C) )
<=> status(Ax,C,wth) ) ).
fof(cax,axiom,
! [Ax,C] :
( ~ ? [I1] : model(I1,Ax)
<=> status(Ax,C,cax) ) ).
fof(sca,axiom,
! [Ax,C] :
( ( ~ ? [I1] : model(I1,Ax)
& ? [I2] : model(I2,C) )
<=> status(Ax,C,sca) ) ).
fof(tca,axiom,
! [Ax,C] :
( ( ~ ? [I1] : model(I1,Ax)
& ! [I2] : model(I2,C) )
<=> status(Ax,C,tca) ) ).
fof(wca,axiom,
! [Ax,C] :
( ( ~ ? [I1] : model(I1,Ax)
& ? [I2] : model(I2,C)
& ? [I3] : ~ model(I3,C) )
<=> status(Ax,C,wca) ) ).
fof(csa,axiom,
! [Ax,C] :
( ? [I1] :
( model(I1,Ax)
& model(I1,not(C)) )
<=> status(Ax,C,csa) ) ).
fof(uns,axiom,
! [Ax,C] :
( ( ! [I1] : model(I1,Ax)
& ! [I2] : model(I2,not(C)) )
<=> status(Ax,C,uns) ) ).
fof(noc,axiom,
! [Ax,C] :
( ( ? [I1] :
( model(I1,Ax)
& model(I1,C) )
& ? [I2] :
( model(I2,Ax)
& model(I2,not(C)) ) )
<=> status(Ax,C,noc) ) ).
%------------------------------------------------------------------------------
./KRS001+1.ax
%------------------------------------------------------------------------------
% File : KRS001+1 : TPTP v8.2.0. Bugfixed v5.4.0.
% Domain : Knowledge Representation
% Axioms : SZS success ontology node relationships
% Version : [Sut08] axioms.
% English :
% Refs : [Sut08] Sutcliffe (2008), The SZS Ontologies for Automated Rea
% Source : [Sut08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 13 ( 2 unt; 0 def)
% Number of atoms : 36 ( 0 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 33 ( 10 ~; 1 |; 11 &)
% ( 6 <=>; 3 =>; 0 <=; 2 <~>)
% Maximal formula depth : 9 ( 6 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 7 ( 7 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 45 ( 23 !; 22 ?)
% SPC :
% Comments :
% Bugfixes : v5.4.0 - Added mixed_pair axiom.
%------------------------------------------------------------------------------
fof(mighta,axiom,
! [S1,S2] :
( ? [Ax,C] :
( status(Ax,C,S1)
& status(Ax,C,S2) )
<=> mighta(S1,S2) ) ).
fof(isa,axiom,
! [S1,S2] :
( ! [Ax,C] :
( status(Ax,C,S1)
=> status(Ax,C,S2) )
<=> isa(S1,S2) ) ).
fof(nota,axiom,
! [S1,S2] :
( ? [Ax,C] :
( status(Ax,C,S1)
& ~ status(Ax,C,S2) )
<=> nota(S1,S2) ) ).
fof(nevera,axiom,
! [S1,S2] :
( ! [Ax,C] :
( status(Ax,C,S1)
=> ~ status(Ax,C,S2) )
<=> nevera(S1,S2) ) ).
fof(xora,axiom,
! [S1,S2] :
( ! [Ax,C] :
( status(Ax,C,S1)
<~> status(Ax,C,S2) )
<=> xora(S1,S2) ) ).
fof(completeness,axiom,
! [I,F] :
( model(I,F)
<~> model(I,not(F)) ) ).
fof(not,axiom,
! [I,F] :
( model(I,F)
<=> ~ model(I,not(F)) ) ).
fof(tautology,axiom,
? [F] :
! [I] : model(I,F) ).
fof(satisfiable,axiom,
? [F] :
( ? [I1] : model(I1,F)
& ? [I2] : ~ model(I2,F) ) ).
fof(contradiction,axiom,
? [F] :
! [I] : ~ model(I,F) ).
%----There exist axiom-conjecture pairs for which some interpretations make
%----both true and some interpretations make neither true.
fof(sat_non_taut_pair,axiom,
? [Ax,C] :
( ? [I1] :
( model(I1,Ax)
& model(I1,C) )
& ? [I2] :
( ~ model(I2,Ax)
| ~ model(I2,C) ) ) ).
%----There exist axiom conjecture pairs for which some interpretations make
%----the axioms true, every interpretation that makes the axioms true makes
%----the conjecture true, some interpretations make only the conjecture true,
%----and some interpretations don't make the conjecture true.
fof(mixed_pair,axiom,
? [Ax,C] :
( ? [I1] : model(I1,Ax)
& ! [I2] :
( model(I2,Ax)
=> model(I2,C) )
& ? [I3] :
( ~ model(I3,Ax)
& model(I3,C) )
& ? [I4] : ~ model(I4,C) ) ).
%----There exist satisfiable axioms that do not imply a satisfiable conjecture
fof(non_thm_spt,axiom,
? [I1,Ax,C] :
( model(I1,Ax)
& ~ model(I1,C)
& ? [I2] : model(I2,C) ) ).
%------------------------------------------------------------------------------
Lattice Theory
./LAT001-0.ax
%--------------------------------------------------------------------------
% File : LAT001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Lattice Theory
% Axioms : Lattice theory (equality) axioms
% Version : [McC88] (equality) axioms.
% English :
% Refs : [Bum65] Bumcroft (1965), Proceedings of the Glasgow Mathematic
% : [McC88] McCune (1988), Challenge Equality Problems in Lattice
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [McC88]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 8 unt; 0 nHn; 0 RR)
% Number of literals : 8 ( 8 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 16 ( 2 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----The following 8 clauses characterise lattices
cnf(idempotence_of_meet,axiom,
meet(X,X) = X ).
cnf(idempotence_of_join,axiom,
join(X,X) = X ).
cnf(absorption1,axiom,
meet(X,join(X,Y)) = X ).
cnf(absorption2,axiom,
join(X,meet(X,Y)) = X ).
cnf(commutativity_of_meet,axiom,
meet(X,Y) = meet(Y,X) ).
cnf(commutativity_of_join,axiom,
join(X,Y) = join(Y,X) ).
cnf(associativity_of_meet,axiom,
meet(meet(X,Y),Z) = meet(X,meet(Y,Z)) ).
cnf(associativity_of_join,axiom,
join(join(X,Y),Z) = join(X,join(Y,Z)) ).
%--------------------------------------------------------------------------
./LAT001-1.ax
%--------------------------------------------------------------------------
% File : LAT001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Lattice Theory
% Axioms : Lattice theory modularity (equality) axioms
% Version : [McC88] (equality) axioms.
% English :
% Refs : [Bum65] Bumcroft (1965), Proceedings of the Glasgow Mathematic
% : [McC88] McCune (1988), Challenge Equality Problems in Lattice
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [McC88]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 5 ( 4 unt; 0 nHn; 0 RR)
% Number of literals : 6 ( 6 equ; 1 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 7 ( 2 sgn)
% SPC :
% Comments : Requires LAT001-0.ax
% : These axioms, with 4 extra redundant axioms about 0 & 1, are
% used in [Wos88] p.217.
%--------------------------------------------------------------------------
%----Include 1 and 0 in the lattice
cnf(x_meet_0,axiom,
meet(X,n0) = n0 ).
cnf(x_join_0,axiom,
join(X,n0) = X ).
cnf(x_meet_1,axiom,
meet(X,n1) = X ).
cnf(x_join_1,axiom,
join(X,n1) = n1 ).
%----Require the lattice to be modular
cnf(modular,axiom,
( meet(X,Z) != X
| meet(Z,join(X,Y)) = join(X,meet(Y,Z)) ) ).
%--------------------------------------------------------------------------
./LAT001-2.ax
%--------------------------------------------------------------------------
% File : LAT001-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Lattice Theory
% Axioms : Lattice theory complement (equality) axioms
% Version : [McC88] (equality) axioms.
% English :
% Refs : [Bum65] Bumcroft (1965), Proceedings of the Glasgow Mathematic
% : [McC88] McCune (1988), Challenge Equality Problems in Lattice
% Source : [McC88]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 0 unt; 0 nHn; 3 RR)
% Number of literals : 7 ( 4 equ; 4 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 6 ( 0 sgn)
% SPC :
% Comments : Requires LAT001-0.ax
%--------------------------------------------------------------------------
%----Definition of complement
cnf(complement_meet,axiom,
( ~ complement(X,Y)
| meet(X,Y) = n0 ) ).
cnf(complement_join,axiom,
( ~ complement(X,Y)
| join(X,Y) = n1 ) ).
cnf(meet_join_complement,axiom,
( meet(X,Y) != n0
| join(X,Y) != n1
| complement(X,Y) ) ).
%--------------------------------------------------------------------------
./LAT001-3.ax
%--------------------------------------------------------------------------
% File : LAT001-3 : TPTP v8.2.0. Released v1.0.0.
% Domain : Lattice Theory
% Axioms : Lattice theory unique complement (equality) axioms
% Version : [McC88] (equality) axioms.
% English :
% Refs : [Bum65] Bumcroft (1965), Proceedings of the Glasgow Mathematic
% : [McC88] McCune (1988), Challenge Equality Problems in Lattice
% Source : [McC88]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 0 unt; 1 nHn; 4 RR)
% Number of literals : 11 ( 2 equ; 6 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 9 ( 0 sgn)
% SPC :
% Comments : Requires LAT001-0.ax LAT001-1.ax
%--------------------------------------------------------------------------
%----Definition of unique complement
cnf(unique_complement1,axiom,
( ~ unique_complement(X,Y)
| complement(X,Y) ) ).
cnf(unique_complement2,axiom,
( ~ unique_complement(X,Y)
| ~ complement(X,Z)
| Z = Y ) ).
cnf(unique_complement3,axiom,
( unique_complement(X,Y)
| ~ complement(X,Y)
| complement(X,f(X,Y)) ) ).
cnf(unique_complement4,axiom,
( unique_complement(X,Y)
| ~ complement(X,Y)
| f(X,Y) != Y ) ).
%--------------------------------------------------------------------------
./LAT001-4.ax
%--------------------------------------------------------------------------
% File : LAT001-4 : TPTP v8.2.0. Released .0.
% Domain : Lattice Theory
% Axioms : Lattice theory unique complementation (equality) axioms
% Version : [McC05] (equality) axioms.
% English :
% Refs : [McC05] McCune (2005), Email to Geoff Sutcliffe
% Source : [McC05]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 2 unt; 0 nHn; 1 RR)
% Number of literals : 5 ( 5 equ; 2 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 4 ( 0 sgn)
% SPC :
% Comments : Requires LAT001-0.ax
%--------------------------------------------------------------------------
%----Unique complementation
cnf(complement_join,axiom,
join(X,complement(X)) = one ).
cnf(complement_meet,axiom,
meet(X,complement(X)) = zero ).
cnf(meet_join_complement,axiom,
( meet(X,Y) != zero
| join(X,Y) != one
| complement(X) = Y ) ).
%--------------------------------------------------------------------------
./LAT002-0.ax
%--------------------------------------------------------------------------
% File : LAT002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Lattice Theory
% Axioms : Lattice theory axioms
% Version : [MOW76] axioms :
% Incomplete > Reduced & Augmented > Complete.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 20 ( 8 unt; 0 nHn; 12 RR)
% Number of literals : 48 ( 2 equ; 28 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 66 ( 4 sgn)
% SPC :
% Comments : These axioms are used in [Wos88] p.215, augmented by some
% redundant axioms about 0 & 1.
% : The original [MOW76] axioms have two extra redundant
% modularity axioms.
% : [OTTER] uses these too, augmented by some redundant axioms.
% : The [MOW76] axiomatisation is missing the axioms that make
% join and meet total functions.
%--------------------------------------------------------------------------
%----Union of n1 and x is equal to n1 : (n1 v X) = n1
cnf(join_1_and_x,axiom,
join(n1,X,n1) ).
%----Union of x with itself is equal to x : (X v X) = X
cnf(join_x_and_x,axiom,
join(X,X,X) ).
%----Union of n0 and x is equal to x : (n0 v X) = X
cnf(join_0_and_x,axiom,
join(n0,X,X) ).
%----Intersection of n0 and x is equal to n0 : (n0 ^ X) = n0
cnf(meet_0_and_x,axiom,
meet(n0,X,n0) ).
%----Intersection of x and itself is equal to x : (X ^ X) = X
cnf(meet_x_and_x,axiom,
meet(X,X,X) ).
%----Intersection of n1 and x is equal to itself : (n1 ^ X) = X
cnf(meet_1_and_x,axiom,
meet(n1,X,X) ).
%----Intersection of x and y , is the same as meet of y and x.
%---- (X ^ Y) = (Y ^ X),
cnf(commutativity_of_meet,axiom,
( ~ meet(X,Y,Z)
| meet(Y,X,Z) ) ).
%----Union of x and y is the same as join of y and x. (X v Y) = (Y v X),
cnf(commutativity_of_join,axiom,
( ~ join(X,Y,Z)
| join(Y,X,Z) ) ).
%----Union of x with the meet of x and y is the same as x.
%---- X v (X ^ Y) = X
cnf(absorbtion1,axiom,
( ~ meet(X,Y,Z)
| join(X,Z,X) ) ).
%----Intersection of x with the join of x and y is the same as x.
%---- X ^ (X v Y) = X
cnf(absorbtion2,axiom,
( ~ join(X,Y,Z)
| meet(X,Z,X) ) ).
%----The operation '^', meet ,is associative
%---- X ^ (Y ^ Z) = (X ^ Y) ^ Z
cnf(associativity_of_meet1,axiom,
( ~ meet(X,Y,Xy)
| ~ meet(Y,Z,Yz)
| ~ meet(X,Yz,Xyz)
| meet(Xy,Z,Xyz) ) ).
cnf(associativity_of_meet2,axiom,
( ~ meet(X,Y,Xy)
| ~ meet(Y,Z,Yz)
| ~ meet(Xy,Z,Xyz)
| meet(X,Yz,Xyz) ) ).
%----The operation 'v' is associative X v (Y v Z) = (X v Y) v Z
cnf(associativity_of_join1,axiom,
( ~ join(X,Y,Xy)
| ~ join(Y,Z,Yz)
| ~ join(X,Yz,Xyz)
| join(Xy,Z,Xyz) ) ).
cnf(associativity_of_join2,axiom,
( ~ join(X,Y,Xy)
| ~ join(Y,Z,Yz)
| ~ join(Xy,Z,Xyz)
| join(X,Yz,Xyz) ) ).
%----(X ^ Z) = X implies that (Z ^ (X v Y)) = (X v (Y ^ Z)),
cnf(modularity1,axiom,
( ~ meet(X,Z,X)
| ~ join(X,Y,X1)
| ~ meet(Y,Z,Y1)
| ~ meet(Z,X1,Z1)
| join(X,Y1,Z1) ) ).
cnf(modularity2,axiom,
( ~ meet(X,Z,X)
| ~ join(X,Y,X1)
| ~ meet(Y,Z,Y1)
| ~ join(X,Y1,Z1)
| meet(Z,X1,Z1) ) ).
cnf(meet_total_function_1,axiom,
meet(X,Y,meet_of(X,Y)) ).
cnf(meet_total_function_2,axiom,
( ~ meet(X,Y,Z1)
| ~ meet(X,Y,Z2)
| Z1 = Z2 ) ).
cnf(join_total_function_1,axiom,
join(X,Y,join_of(X,Y)) ).
cnf(join_total_function_2,axiom,
( ~ join(X,Y,Z1)
| ~ join(X,Y,Z2)
| Z1 = Z2 ) ).
%--------------------------------------------------------------------------
./LAT003-0.ax
%--------------------------------------------------------------------------
% File : LAT003-0 : TPTP v8.2.0. Bugfixed v2.2.1.
% Domain : Lattice Theory (Ortholattices)
% Axioms : Ortholattice theory (equality) axioms
% Version : [McC98b] (equality) axioms.
% English :
% Refs : [McC98a] McCune (1998), Automatic Proofs and Counterexamples f
% : [McC98b] McCune (1998), Email to G. Sutcliffe
% Source : [McC98b]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 10 ( 10 unt; 0 nHn; 0 RR)
% Number of literals : 10 ( 10 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 19 ( 2 sgn)
% SPC :
% Comments :
% Bugfixes : v2.2.1 - Added clauses top and bottom.
%--------------------------------------------------------------------------
%----Axioms for an Ortholattice:
cnf(top,axiom,
join(complement(X),X) = n1 ).
cnf(bottom,axiom,
meet(complement(X),X) = n0 ).
cnf(absorption2,axiom,
join(X,meet(X,Y)) = X ).
cnf(commutativity_of_meet,axiom,
meet(X,Y) = meet(Y,X) ).
cnf(commutativity_of_join,axiom,
join(X,Y) = join(Y,X) ).
cnf(associativity_of_meet,axiom,
meet(meet(X,Y),Z) = meet(X,meet(Y,Z)) ).
cnf(associativity_of_join,axiom,
join(join(X,Y),Z) = join(X,join(Y,Z)) ).
cnf(complement_involution,axiom,
complement(complement(X)) = X ).
cnf(join_complement,axiom,
join(X,join(Y,complement(Y))) = join(Y,complement(Y)) ).
cnf(meet_complement,axiom,
meet(X,Y) = complement(join(complement(X),complement(Y))) ).
%--------------------------------------------------------------------------
./LAT004-0.ax
%--------------------------------------------------------------------------
% File : LAT004-0 : TPTP v8.2.0. Released v2.2.0.
% Domain : Lattice Theory (Quasilattices)
% Axioms : Quasilattice theory (equality) axioms
% Version : [McC98b] (equality) axioms.
% English :
% Refs : [McC98] McCune (1998), Email to G. Sutcliffe
% : [MP96] McCune & Padmanabhan (1996), Automated Deduction in Eq
% Source : [McC98]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 8 unt; 0 nHn; 0 RR)
% Number of literals : 8 ( 8 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 18 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Quasilattice theory:
cnf(idempotence_of_meet,axiom,
meet(X,X) = X ).
cnf(idempotence_of_join,axiom,
join(X,X) = X ).
cnf(commutativity_of_meet,axiom,
meet(X,Y) = meet(Y,X) ).
cnf(commutativity_of_join,axiom,
join(X,Y) = join(Y,X) ).
cnf(associativity_of_meet,axiom,
meet(meet(X,Y),Z) = meet(X,meet(Y,Z)) ).
cnf(associativity_of_join,axiom,
join(join(X,Y),Z) = join(X,join(Y,Z)) ).
cnf(quasi_lattice1,axiom,
join(meet(X,join(Y,Z)),meet(X,Y)) = meet(X,join(Y,Z)) ).
cnf(quasi_lattice2,axiom,
meet(join(X,meet(Y,Z)),join(X,Y)) = join(X,meet(Y,Z)) ).
%--------------------------------------------------------------------------
./LAT005-0.ax
%------------------------------------------------------------------------------
% File : LAT005-0 : TPTP v8.2.0. Released v2.2.0.
% Domain : Lattice Theory (Weakly Associative Lattices)
% Axioms : Weakly Associative Lattices theory (equality) axioms
% Version : [McC98b] (equality) axioms.
% English :
% Refs : [McC98] McCune (1998), Email to G. Sutcliffe
% : [MP96] McCune & Padmanabhan (1996), Automated Deduction in Eq
% Source : [McC98]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 6 unt; 0 nHn; 0 RR)
% Number of literals : 6 ( 6 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 12 ( 4 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Axioms for a weakly associative lattice:
cnf(idempotence_of_meet,axiom,
meet(X,X) = X ).
cnf(idempotence_of_join,axiom,
join(X,X) = X ).
cnf(commutativity_of_meet,axiom,
meet(X,Y) = meet(Y,X) ).
cnf(commutativity_of_join,axiom,
join(X,Y) = join(Y,X) ).
cnf(wal_1,axiom,
meet(meet(join(X,Y),join(Z,Y)),Y) = Y ).
cnf(wal_2,axiom,
join(join(meet(X,Y),meet(Z,Y)),Y) = Y ).
%------------------------------------------------------------------------------
./LAT006-0.ax
%------------------------------------------------------------------------------
% File : LAT006-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Lattice Theory
% Axioms : Tarski's fixed point theorem (equality) axioms
% Version : [Pau06] (equality) axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Tarski.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 9 ( 6 unt; 0 nHn; 3 RR)
% Number of literals : 12 ( 12 equ; 3 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 7 ( 7 usr; 0 con; 3-5 aty)
% Number of variables : 56 ( 21 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
cnf(cls_Tarski_Opotype_Oext__inject_0,axiom,
( c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z) != c_Tarski_Opotype_Opotype__ext(V_pset_H,V_order_H,V_more_H,T_a,T_z)
| V_pset = V_pset_H ) ).
cnf(cls_Tarski_Opotype_Oext__inject_1,axiom,
( c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z) != c_Tarski_Opotype_Opotype__ext(V_pset_H,V_order_H,V_more_H,T_a,T_z)
| V_order = V_order_H ) ).
cnf(cls_Tarski_Opotype_Oext__inject_2,axiom,
( c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z) != c_Tarski_Opotype_Opotype__ext(V_pset_H,V_order_H,V_more_H,T_a,T_z)
| V_more = V_more_H ) ).
cnf(cls_Tarski_Opotype_Oselect__convs__1_0,axiom,
c_Tarski_Opotype_Opset(c_Tarski_Opotype_Opotype__ext(V_y,V_order,V_more,T_a,T_z),T_a,T_z) = V_y ).
cnf(cls_Tarski_Opotype_Oselect__convs__2_0,axiom,
c_Tarski_Opotype_Oorder(c_Tarski_Opotype_Opotype__ext(V_pset,V_y,V_more,T_a,T_z),T_a,T_z) = V_y ).
cnf(cls_Tarski_Opotype_Oselect__convs__3_0,axiom,
c_Tarski_Opotype_Omore(c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_y,T_a,T_a),T_a,T_a) = V_y ).
cnf(cls_Tarski_Opotype_Oupdate__convs__1_0,axiom,
c_Tarski_Opotype_Opset__update(V_pset_H,c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z),T_a,T_z) = c_Tarski_Opotype_Opotype__ext(V_pset_H,V_order,V_more,T_a,T_z) ).
cnf(cls_Tarski_Opotype_Oupdate__convs__2_0,axiom,
c_Tarski_Opotype_Oorder__update(V_order_H,c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z),T_a,T_z) = c_Tarski_Opotype_Opotype__ext(V_pset,V_order_H,V_more,T_a,T_z) ).
cnf(cls_Tarski_Opotype_Oupdate__convs__3_0,axiom,
c_Tarski_Opotype_Omore__update(V_more_H,c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more,T_a,T_z),T_z,T_a) = c_Tarski_Opotype_Opotype__ext(V_pset,V_order,V_more_H,T_a,T_z) ).
%------------------------------------------------------------------------------
./LAT006-1.ax
%------------------------------------------------------------------------------
% File : LAT006-1 : TPTP v8.2.0. Released v3.2.0.
% Domain : Lattice Theory
% Axioms : Tarski's fixed point theorem GLB (equality) axioms
% Version : [Pau06] (equality) axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Tarski__glb.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 13 ( 7 unt; 0 nHn; 11 RR)
% Number of literals : 22 ( 4 equ; 9 neg)
% Maximal clause size : 5 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 2-3 aty)
% Number of functors : 16 ( 16 usr; 7 con; 0-4 aty)
% Number of variables : 23 ( 0 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
cnf(cls_Tarski_OA_A_61_61_Apset_Acl_0,axiom,
v_A = c_Tarski_Opotype_Opset(v_cl,t_a,tc_Product__Type_Ounit) ).
cnf(cls_Tarski_OCL_Olub__upper_0,axiom,
( ~ c_in(V_x,V_S,T_a)
| ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| ~ c_in(V_cl,c_Tarski_OPartialOrder,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| ~ c_lessequals(V_S,c_Tarski_Opotype_Opset(V_cl,T_a,tc_Product__Type_Ounit),tc_set(T_a))
| c_in(c_Pair(V_x,c_Tarski_Olub(V_S,V_cl,T_a),T_a,T_a),c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),tc_prod(T_a,T_a)) ) ).
cnf(cls_Tarski_O_Ix1_M_Ay1_J_A_58_Aorder_A_Idual_Acl_J_A_61_61_A_Iy1_M_Ax1_J_A_58_Aorder_Acl_0,axiom,
( ~ c_in(c_Pair(V_x,V_y,T_a,T_a),c_Tarski_Opotype_Oorder(c_Tarski_Odual(V_cl,T_a),T_a,tc_Product__Type_Ounit),tc_prod(T_a,T_a))
| c_in(c_Pair(V_y,V_x,T_a,T_a),c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),tc_prod(T_a,T_a)) ) ).
cnf(cls_Tarski_O_Ix1_M_Ay1_J_A_58_Aorder_A_Idual_Acl_J_A_61_61_A_Iy1_M_Ax1_J_A_58_Aorder_Acl_1,axiom,
( ~ c_in(c_Pair(V_y,V_x,T_a,T_a),c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),tc_prod(T_a,T_a))
| c_in(c_Pair(V_x,V_y,T_a,T_a),c_Tarski_Opotype_Oorder(c_Tarski_Odual(V_cl,T_a),T_a,tc_Product__Type_Ounit),tc_prod(T_a,T_a)) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Aantisym_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Oantisym(c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Arefl_A_Ipset_Acl1_J_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Orefl(c_Tarski_Opotype_Opset(V_cl,T_a,tc_Product__Type_Ounit),c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Atrans_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Otrans(c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl_A_58_ACompleteLattice_A_61_61_ATrue_0,axiom,
c_in(v_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(t_a,tc_Product__Type_Ounit)) ).
cnf(cls_Tarski_Odual_Acl_A_58_ACompleteLattice_0,axiom,
c_in(c_Tarski_Odual(v_cl,t_a),c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(t_a,tc_Product__Type_Ounit)) ).
cnf(cls_Tarski_Odual_Acl_A_58_APartialOrder_0,axiom,
c_in(c_Tarski_Odual(v_cl,t_a),c_Tarski_OPartialOrder,tc_Tarski_Opotype_Opotype__ext__type(t_a,tc_Product__Type_Ounit)) ).
cnf(cls_Tarski_Oglb__dual__lub_0,axiom,
c_Tarski_Oglb(V_S,V_cl,T_a) = c_Tarski_Olub(V_S,c_Tarski_Odual(V_cl,T_a),T_a) ).
cnf(cls_Tarski_Opset_A_Idual_Acl_J_A_61_61_Apset_Acl_0,axiom,
c_Tarski_Opotype_Opset(c_Tarski_Odual(V_cl,T_a),T_a,tc_Product__Type_Ounit) = c_Tarski_Opotype_Opset(V_cl,T_a,tc_Product__Type_Ounit) ).
cnf(cls_Tarski_Or_A_61_61_Aorder_Acl_0,axiom,
v_r = c_Tarski_Opotype_Oorder(v_cl,t_a,tc_Product__Type_Ounit) ).
%------------------------------------------------------------------------------
./LAT006-2.ax
%------------------------------------------------------------------------------
% File : LAT006-2 : TPTP v8.2.0. Released v3.2.0.
% Domain : Lattice Theory
% Axioms : Tarski's fixed point theorem L (equality) axioms
% Version : [Pau06] (equality) axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Tarski__L.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 15 ( 1 unt; 5 nHn; 12 RR)
% Number of literals : 51 ( 4 equ; 27 neg)
% Maximal clause size : 5 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 7 ( 6 usr; 0 prp; 2-4 aty)
% Number of functors : 17 ( 17 usr; 7 con; 0-4 aty)
% Number of variables : 51 ( 6 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
cnf(cls_Tarski_O_91_124_AS1_A_60_61_AA_59_AS1_A_126_61_A_123_125_59_AALL_Ax_58S1_O_A_Ia1_M_Ax_J_A_58_Ar_59_AALL_Ay_58S1_O_A_Iy_M_AL1_J_A_58_Ar_A_124_93_A_61_61_62_A_Ia1_M_AL1_J_A_58_Ar_A_61_61_ATrue_0,axiom,
( ~ c_lessequals(V_S,V_A,tc_set(t_a))
| c_in(c_Pair(V_a,V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| c_in(v_sko__4mj(V_S,V_a,v_r),V_S,t_a)
| c_in(v_sko__4mk(V_L,V_S,v_r),V_S,t_a)
| V_S = c_emptyset ) ).
cnf(cls_Tarski_O_91_124_AS1_A_60_61_AA_59_AS1_A_126_61_A_123_125_59_AALL_Ax_58S1_O_A_Ia1_M_Ax_J_A_58_Ar_59_AALL_Ay_58S1_O_A_Iy_M_AL1_J_A_58_Ar_A_124_93_A_61_61_62_A_Ia1_M_AL1_J_A_58_Ar_A_61_61_ATrue_1,axiom,
( ~ c_in(c_Pair(v_sko__4mk(V_L,V_S,v_r),V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| ~ c_lessequals(V_S,V_A,tc_set(t_a))
| c_in(c_Pair(V_a,V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| c_in(v_sko__4mj(V_S,V_a,v_r),V_S,t_a)
| V_S = c_emptyset ) ).
cnf(cls_Tarski_O_91_124_AS1_A_60_61_AA_59_AS1_A_126_61_A_123_125_59_AALL_Ax_58S1_O_A_Ia1_M_Ax_J_A_58_Ar_59_AALL_Ay_58S1_O_A_Iy_M_AL1_J_A_58_Ar_A_124_93_A_61_61_62_A_Ia1_M_AL1_J_A_58_Ar_A_61_61_ATrue_2,axiom,
( ~ c_in(c_Pair(V_a,v_sko__4mj(V_S,V_a,v_r),t_a,t_a),v_r,tc_prod(t_a,t_a))
| ~ c_lessequals(V_S,V_A,tc_set(t_a))
| c_in(c_Pair(V_a,V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| c_in(v_sko__4mk(V_L,V_S,v_r),V_S,t_a)
| V_S = c_emptyset ) ).
cnf(cls_Tarski_O_91_124_AS1_A_60_61_AA_59_AS1_A_126_61_A_123_125_59_AALL_Ax_58S1_O_A_Ia1_M_Ax_J_A_58_Ar_59_AALL_Ay_58S1_O_A_Iy_M_AL1_J_A_58_Ar_A_124_93_A_61_61_62_A_Ia1_M_AL1_J_A_58_Ar_A_61_61_ATrue_3,axiom,
( ~ c_in(c_Pair(V_a,v_sko__4mj(V_S,V_a,v_r),t_a,t_a),v_r,tc_prod(t_a,t_a))
| ~ c_in(c_Pair(v_sko__4mk(V_L,V_S,v_r),V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| ~ c_lessequals(V_S,V_A,tc_set(t_a))
| c_in(c_Pair(V_a,V_L,t_a,t_a),v_r,tc_prod(t_a,t_a))
| V_S = c_emptyset ) ).
cnf(cls_Tarski_O_91_124_AS1_A_60_61_Ainterval_Ar_Aa1_Ab1_59_Ax1_A_58_AS1_A_124_93_A_61_61_62_A_Ia1_M_Ax1_J_A_58_Ar_A_61_61_ATrue_0,axiom,
( ~ c_in(V_x,V_S,T_a)
| ~ c_lessequals(V_S,c_Tarski_Ointerval(V_r,V_a,V_b,T_a),tc_set(T_a))
| c_in(c_Pair(V_a,V_x,T_a,T_a),V_r,tc_prod(T_a,T_a)) ) ).
cnf(cls_Tarski_O_91_124_AS1_A_60_61_Ainterval_Ar_Aa1_Ab1_59_Ax1_A_58_AS1_A_124_93_A_61_61_62_A_Ix1_M_Ab1_J_A_58_Ar_A_61_61_ATrue_0,axiom,
( ~ c_in(V_x,V_S,T_a)
| ~ c_lessequals(V_S,c_Tarski_Ointerval(V_r,V_a,V_b,T_a),tc_set(T_a))
| c_in(c_Pair(V_x,V_b,T_a,T_a),V_r,tc_prod(T_a,T_a)) ) ).
cnf(cls_Tarski_O_91_124_A_Ia1_M_Ax1_J_A_58_Ar_59_A_Ix1_M_Ab1_J_A_58_Ar_A_124_93_A_61_61_62_Ax1_A_58_Ainterval_Ar_Aa1_Ab1_A_61_61_ATrue_0,axiom,
( ~ c_in(c_Pair(V_x,V_b,T_a,T_a),V_r,tc_prod(T_a,T_a))
| ~ c_in(c_Pair(V_a,V_x,T_a,T_a),V_r,tc_prod(T_a,T_a))
| c_in(V_x,c_Tarski_Ointerval(V_r,V_a,V_b,T_a),T_a) ) ).
cnf(cls_Tarski_O_91_124_Aa1_A_58_AA_59_Ab1_A_58_AA_59_AS1_A_60_61_Ainterval_Ar_Aa1_Ab1_A_124_93_A_61_61_62_AS1_A_60_61_AA_A_61_61_ATrue_0,axiom,
( ~ c_in(V_b,v_A,t_a)
| ~ c_in(V_a,v_A,t_a)
| ~ c_lessequals(V_S,c_Tarski_Ointerval(v_r,V_a,V_b,t_a),tc_set(t_a))
| c_lessequals(V_S,v_A,tc_set(t_a)) ) ).
cnf(cls_Tarski_O_91_124_AisLub_AS1_Acl_AL1_59_Ay1_A_58_AS1_A_124_93_A_61_61_62_A_Iy1_M_AL1_J_A_58_Ar_A_61_61_ATrue_0,axiom,
( ~ c_Tarski_OisLub(V_S,v_cl,V_L,t_a)
| ~ c_in(V_y,V_S,t_a)
| c_in(c_Pair(V_y,V_L,t_a,t_a),v_r,tc_prod(t_a,t_a)) ) ).
cnf(cls_Tarski_O_91_124_AisLub_AS1_Acl_AL1_59_Az1_A_58_AA_59_AALL_Ay_58S1_O_A_Iy_M_Az1_J_A_58_Ar_A_124_93_A_61_61_62_A_IL1_M_Az1_J_A_58_Ar_A_61_61_ATrue_0,axiom,
( ~ c_Tarski_OisLub(V_S,v_cl,V_L,t_a)
| ~ c_in(V_z,v_A,t_a)
| c_in(c_Pair(V_L,V_z,t_a,t_a),v_r,tc_prod(t_a,t_a))
| c_in(v_sko__4mi(V_S,v_r,V_z),V_S,t_a) ) ).
cnf(cls_Tarski_O_91_124_AisLub_AS1_Acl_AL1_59_Az1_A_58_AA_59_AALL_Ay_58S1_O_A_Iy_M_Az1_J_A_58_Ar_A_124_93_A_61_61_62_A_IL1_M_Az1_J_A_58_Ar_A_61_61_ATrue_1,axiom,
( ~ c_Tarski_OisLub(V_S,v_cl,V_L,t_a)
| ~ c_in(V_z,v_A,t_a)
| ~ c_in(c_Pair(v_sko__4mi(V_S,v_r,V_z),V_z,t_a,t_a),v_r,tc_prod(t_a,t_a))
| c_in(c_Pair(V_L,V_z,t_a,t_a),v_r,tc_prod(t_a,t_a)) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Aantisym_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Oantisym(c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Arefl_A_Ipset_Acl1_J_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Orefl(c_Tarski_Opotype_Opset(V_cl,T_a,tc_Product__Type_Ounit),c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl1_A_58_ACompleteLattice_A_61_61_62_Atrans_A_Iorder_Acl1_J_A_61_61_ATrue_0,axiom,
( ~ c_in(V_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(T_a,tc_Product__Type_Ounit))
| c_Relation_Otrans(c_Tarski_Opotype_Oorder(V_cl,T_a,tc_Product__Type_Ounit),T_a) ) ).
cnf(cls_Tarski_Ocl_A_58_ACompleteLattice_A_61_61_ATrue_0,axiom,
c_in(v_cl,c_Tarski_OCompleteLattice,tc_Tarski_Opotype_Opotype__ext__type(t_a,tc_Product__Type_Ounit)) ).
%------------------------------------------------------------------------------
Logic Calculi
./LCL001-0.ax
%--------------------------------------------------------------------------
% File : LCL001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Wajsberg Algebras)
% Axioms : Wajsberg algebra
% Version : [Bon91] (equality) axioms.
% English :
% Refs : [FRT84] Font et al. (1984), Wajsberg Algebras
% : [Bon91] Bonacina (1991), Problems in Lukasiewicz Logic
% : [MW92] McCune & Wos (1992), Experiments in Automated Deductio
% Source : [MW92]
% Names : MV Sentential Calculus [MW92]
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 4 unt; 0 nHn; 0 RR)
% Number of literals : 4 ( 4 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 1 con; 0-2 aty)
% Number of variables : 8 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(wajsberg_1,axiom,
implies(truth,X) = X ).
cnf(wajsberg_2,axiom,
implies(implies(X,Y),implies(implies(Y,Z),implies(X,Z))) = truth ).
cnf(wajsberg_3,axiom,
implies(implies(X,Y),Y) = implies(implies(Y,X),X) ).
cnf(wajsberg_4,axiom,
implies(implies(not(X),not(Y)),implies(Y,X)) = truth ).
%--------------------------------------------------------------------------
./LCL001-1.ax
%--------------------------------------------------------------------------
% File : LCL001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Wajsberg Algebras)
% Axioms : Wajsberg algebra lattice structure definitions
% Version : [Bon91] (equality) axioms.
% English :
% Refs : [FRT84] Font et al. (1984), Wajsberg Algebras
% : [Bon91] Bonacina (1991), Problems in Lukasiewicz Logic
% Source : [Bon91]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 2 unt; 0 nHn; 2 RR)
% Number of literals : 6 ( 4 equ; 2 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 1 con; 0-2 aty)
% Number of variables : 8 ( 0 sgn)
% SPC :
% Comments : Requires LCL001-0.ax
%--------------------------------------------------------------------------
%----Definitions of big_V and big_hat
cnf(big_V_definition,axiom,
big_V(X,Y) = implies(implies(X,Y),Y) ).
cnf(big_hat_definition,axiom,
big_hat(X,Y) = not(big_V(not(X),not(Y))) ).
%----Definition of partial order
cnf(partial_order_definition1,axiom,
( ~ ordered(X,Y)
| implies(X,Y) = truth ) ).
cnf(partial_order_definition2,axiom,
( implies(X,Y) != truth
| ordered(X,Y) ) ).
%--------------------------------------------------------------------------
./LCL001-2.ax
%--------------------------------------------------------------------------
% File : LCL001-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Wajsberg Algebras)
% Axioms : Wajsberg algebra AND and OR definitions
% Version : [AB90] (equality) axioms.
% English :
% Refs : [FRT84] Font et al. (1984), Wajsberg Algebras
% : [AB90] Anantharaman & Bonacina (1990), An Application of the
% : [Bon91] Bonacina (1991), Problems in Lukasiewicz Logic
% Source : [Bon91]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 6 unt; 0 nHn; 0 RR)
% Number of literals : 6 ( 6 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 14 ( 0 sgn)
% SPC :
% Comments : Requires LCL001-0.ax
%--------------------------------------------------------------------------
%----Definitions of or and and, which are AC
cnf(or_definition,axiom,
or(X,Y) = implies(not(X),Y) ).
cnf(or_associativity,axiom,
or(or(X,Y),Z) = or(X,or(Y,Z)) ).
cnf(or_commutativity,axiom,
or(X,Y) = or(Y,X) ).
cnf(and_definition,axiom,
and(X,Y) = not(or(not(X),not(Y))) ).
cnf(and_associativity,axiom,
and(and(X,Y),Z) = and(X,and(Y,Z)) ).
cnf(and_commutativity,axiom,
and(X,Y) = and(Y,X) ).
%--------------------------------------------------------------------------
./LCL002-0.ax
%--------------------------------------------------------------------------
% File : LCL002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Wajsberg Algebras)
% Axioms : Alternative Wajsberg algebra
% Version : [AB90] (equality) axioms.
% English :
% Refs : [FRT84] Font et al. (1984), Wajsberg Algebras
% : [AB90] Anantharaman & Bonacina (1990), An Application of the
% : [Bon91] Bonacina (1991), Problems in Lukasiewicz Logic
% Source : [Bon91]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 8 unt; 0 nHn; 0 RR)
% Number of literals : 8 ( 8 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 10 ( 1 sgn)
% SPC :
% Comments : Requires LAT003-0.ax
%--------------------------------------------------------------------------
cnf(axiom_1,axiom,
not(X) = xor(X,truth) ).
cnf(axiom_2,axiom,
xor(X,falsehood) = X ).
cnf(axiom_3,axiom,
xor(X,X) = falsehood ).
cnf(axiom_4,axiom,
and_star(X,truth) = X ).
cnf(axiom_5,axiom,
and_star(X,falsehood) = falsehood ).
cnf(axiom_6,axiom,
and_star(xor(truth,X),X) = falsehood ).
cnf(axiom_7,axiom,
xor(X,xor(truth,Y)) = xor(xor(X,truth),Y) ).
cnf(axiom_8,axiom,
and_star(xor(and_star(xor(truth,X),Y),truth),Y) = and_star(xor(and_star(xor(truth,Y),X),truth),X) ).
%--------------------------------------------------------------------------
./LCL002-1.ax
%--------------------------------------------------------------------------
% File : LCL002-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Wajsberg Algebras)
% Axioms : Alternative Wajsberg algebra definitions
% Version : [AB90] (equality) axioms.
% English :
% Refs : [FRT84] Font et al. (1984), Wajsberg Algebras
% : [AB90] Anantharaman & Bonacina (1990), An Application of the
% : [Bon91] Bonacina (1991), Problems in Lukasiewicz Logic
% Source : [Bon91]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 6 unt; 0 nHn; 1 RR)
% Number of literals : 6 ( 6 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 7 ( 7 usr; 2 con; 0-2 aty)
% Number of variables : 11 ( 0 sgn)
% SPC :
% Comments : Requires LCL001-0.ax LCL001-2.ax
%--------------------------------------------------------------------------
%----Definitions of and_star and xor, where and_star is AC and xor is C
cnf(xor_definition,axiom,
xor(X,Y) = or(and(X,not(Y)),and(not(X),Y)) ).
cnf(xor_commutativity,axiom,
xor(X,Y) = xor(Y,X) ).
cnf(and_star_definition,axiom,
and_star(X,Y) = not(or(not(X),not(Y))) ).
%---I guess the next two can be derived from the AC of and
cnf(and_star_associativity,axiom,
and_star(and_star(X,Y),Z) = and_star(X,and_star(Y,Z)) ).
cnf(and_star_commutativity,axiom,
and_star(X,Y) = and_star(Y,X) ).
%----Definition of false in terms of truth
cnf(false_definition,axiom,
not(truth) = falsehood ).
%--------------------------------------------------------------------------
./LCL003-0.ax
%--------------------------------------------------------------------------
% File : LCL003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic deduction
% Version : [WR27] axioms : Reduced & Augmented.
% English :
% Refs : [WR27] Whitehead & Russell (1927), Principia Mathematica
% : [ORo89] O'Rourke (1989), LT Revisited: Explanation-Based Learn
% : [SE94] Segre & Elkan (1994), A High-Performance Explanation-B
% Source : [SE94]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 5 unt; 0 nHn; 3 RR)
% Number of literals : 13 ( 0 equ; 5 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 1-1 aty)
% Number of functors : 2 ( 2 usr; 0 con; 1-2 aty)
% Number of variables : 17 ( 1 sgn)
% SPC :
% Comments : Reduced to use only or and not, and includes a redundant rule
% of transitivity of implication, and a reduced rule of
% detachment.
%--------------------------------------------------------------------------
cnf(axiom_1_2,axiom,
axiom(or(not(or(A,A)),A)) ).
cnf(axiom_1_3,axiom,
axiom(or(not(A),or(B,A))) ).
cnf(axiom_1_4,axiom,
axiom(or(not(or(A,B)),or(B,A))) ).
cnf(axiom_1_5,axiom,
axiom(or(not(or(A,or(B,C))),or(B,or(A,C)))) ).
cnf(axiom_1_6,axiom,
axiom(or(not(or(not(A),B)),or(not(or(C,A)),or(C,B)))) ).
cnf(rule_1,axiom,
( theorem(X)
| ~ axiom(X) ) ).
cnf(rule_2,axiom,
( theorem(X)
| ~ axiom(or(not(Y),X))
| ~ theorem(Y) ) ).
cnf(rule_3,axiom,
( theorem(or(not(X),Z))
| ~ axiom(or(not(X),Y))
| ~ theorem(or(not(Y),Z)) ) ).
%--------------------------------------------------------------------------
./LCL004-0.ax
%------------------------------------------------------------------------------
% File : LCL004-0 : TPTP v8.2.0. Released v2.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic deduction
% Version : [WR27] axioms.
% English :
% Refs : [WR27] Whitehead & Russell (1927), Principia Mathematica
% Source : [WR27]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 6 unt; 0 nHn; 2 RR)
% Number of literals : 11 ( 1 equ; 3 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 1-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 16 ( 1 sgn)
% SPC :
% Comments : This axiomatization follows [WR27], allowing full detachment
% but no chaining (which is a dependant theorem). Compare with
% LCL003-0.ax.
%------------------------------------------------------------------------------
cnf(axiom_1_2,axiom,
axiom(implies(or(A,A),A)) ).
cnf(axiom_1_3,axiom,
axiom(implies(A,or(B,A))) ).
cnf(axiom_1_4,axiom,
axiom(implies(or(A,B),or(B,A))) ).
cnf(axiom_1_5,axiom,
axiom(implies(or(A,or(B,C)),or(B,or(A,C)))) ).
cnf(axiom_1_6,axiom,
axiom(implies(implies(A,B),implies(or(C,A),or(C,B)))) ).
cnf(implies_definition,axiom,
implies(X,Y) = or(not(X),Y) ).
cnf(rule_1,axiom,
( theorem(X)
| ~ axiom(X) ) ).
cnf(rule_2,axiom,
( theorem(X)
| ~ theorem(implies(Y,X))
| ~ theorem(Y) ) ).
% input_clause(rule_3,axiom,
% [++theorem(implies(X,Z)),
% --theorem(implies(X,Y)),
% --theorem(implies(Y,Z))]).
%------------------------------------------------------------------------------
./LCL004-1.ax
%--------------------------------------------------------------------------
% File : LCL004-1 : TPTP v8.2.0. Released v2.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic deduction axioms for AND
% Version : [WR27] axioms.
% English :
% Refs : [WR27] Whitehead & Russell (1927), Principia Mathematica
% Source : [WR27]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 1 unt; 0 nHn; 0 RR)
% Number of literals : 1 ( 1 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 2 ( 0 sgn)
% SPC :
% Comments : Requires LCL004-0.ax
%--------------------------------------------------------------------------
cnf(and_defn,axiom,
and(P,Q) = not(or(not(P),not(Q))) ).
%--------------------------------------------------------------------------
./LCL004-2.ax
%--------------------------------------------------------------------------
% File : LCL004-2 : TPTP v8.2.0. Released v2.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic deduction axioms for EQUIVALENT
% Version : [WR27] axioms.
% English :
% Refs : [WR27] Whitehead & Russell (1927), Principia Mathematica
% Source : [WR27]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 1 ( 1 unt; 0 nHn; 0 RR)
% Number of literals : 1 ( 1 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 2-2 aty)
% Number of variables : 2 ( 0 sgn)
% SPC :
% Comments : Requires LCL004-0.ax LCL004-1.ax
%--------------------------------------------------------------------------
cnf(equivalent_defn,axiom,
equivalent(P,Q) = and(implies(P,Q),implies(Q,P)) ).
%--------------------------------------------------------------------------
./LCL005-0.ax
%------------------------------------------------------------------------------
% File : LCL005-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : PropLog.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 10 ( 6 unt; 0 nHn; 10 RR)
% Number of literals : 14 ( 12 equ; 10 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 5 ( 5 usr; 1 con; 0-3 aty)
% Number of variables : 34 ( 20 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax
%------------------------------------------------------------------------------
cnf(cls_PropLog_Opl_Odistinct__1__iff1_0,axiom,
c_PropLog_Opl_Ofalse != c_PropLog_Opl_Ovar(V_a_H,T_a) ).
cnf(cls_PropLog_Opl_Odistinct__2__iff1_0,axiom,
c_PropLog_Opl_Ovar(V_a_H,T_a) != c_PropLog_Opl_Ofalse ).
cnf(cls_PropLog_Opl_Odistinct__3__iff1_0,axiom,
c_PropLog_Opl_Ofalse != c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a) ).
cnf(cls_PropLog_Opl_Odistinct__4__iff1_0,axiom,
c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a) != c_PropLog_Opl_Ofalse ).
cnf(cls_PropLog_Opl_Odistinct__5__iff1_0,axiom,
c_PropLog_Opl_Ovar(V_a,T_a) != c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a) ).
cnf(cls_PropLog_Opl_Odistinct__6__iff1_0,axiom,
c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a) != c_PropLog_Opl_Ovar(V_a,T_a) ).
cnf(cls_PropLog_Opl_Oinject__1__iff1_0,axiom,
( c_PropLog_Opl_Ovar(V_a,T_a) != c_PropLog_Opl_Ovar(V_a_H,T_a)
| V_a = V_a_H ) ).
cnf(cls_PropLog_Opl_Oinject__2__iff1_0,axiom,
( c_PropLog_Opl_Oop_A_N_62(V_pl1,V_pl2,T_a) != c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a)
| V_pl1 = V_pl1_H ) ).
cnf(cls_PropLog_Opl_Oinject__2__iff1_1,axiom,
( c_PropLog_Opl_Oop_A_N_62(V_pl1,V_pl2,T_a) != c_PropLog_Opl_Oop_A_N_62(V_pl1_H,V_pl2_H,T_a)
| V_pl2 = V_pl2_H ) ).
cnf(cls_PropLog_Othms_OH_0,axiom,
( ~ c_in(V_p,V_H,tc_PropLog_Opl(T_a))
| c_in(V_p,c_PropLog_Othms(V_H,T_a),tc_PropLog_Opl(T_a)) ) ).
%------------------------------------------------------------------------------
./LCL006+0.ax
%------------------------------------------------------------------------------
% File : LCL006+0 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic rules and axioms
% Version : [She06] axioms.
% English :
% Refs : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [She06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 26 ( 0 unt; 0 def)
% Number of atoms : 55 ( 1 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 29 ( 0 ~; 0 |; 1 &)
% ( 26 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 4 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 28 ( 27 usr; 26 prp; 0-2 aty)
% Number of functors : 5 ( 5 usr; 0 con; 1-2 aty)
% Number of variables : 55 ( 55 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----The only explicit rule of PC. Uniform substitution is implemented by
%----universal quantification
fof(modus_ponens,axiom,
( modus_ponens
<=> ! [X,Y] :
( ( is_a_theorem(X)
& is_a_theorem(implies(X,Y)) )
=> is_a_theorem(Y) ) ) ).
%----Meta-rule of PC, which Ted says is not necessary
fof(substitution_of_equivalents,axiom,
( substitution_of_equivalents
<=> ! [X,Y] :
( is_a_theorem(equiv(X,Y))
=> X = Y ) ) ).
%----The axioms of Hilbert PC
fof(modus_tollens,axiom,
( modus_tollens
<=> ! [X,Y] : is_a_theorem(implies(implies(not(Y),not(X)),implies(X,Y))) ) ).
fof(implies_1,axiom,
( implies_1
<=> ! [X,Y] : is_a_theorem(implies(X,implies(Y,X))) ) ).
fof(implies_2,axiom,
( implies_2
<=> ! [X,Y] : is_a_theorem(implies(implies(X,implies(X,Y)),implies(X,Y))) ) ).
fof(implies_3,axiom,
( implies_3
<=> ! [X,Y,Z] : is_a_theorem(implies(implies(X,Y),implies(implies(Y,Z),implies(X,Z)))) ) ).
fof(and_1,axiom,
( and_1
<=> ! [X,Y] : is_a_theorem(implies(and(X,Y),X)) ) ).
fof(and_2,axiom,
( and_2
<=> ! [X,Y] : is_a_theorem(implies(and(X,Y),Y)) ) ).
fof(and_3,axiom,
( and_3
<=> ! [X,Y] : is_a_theorem(implies(X,implies(Y,and(X,Y)))) ) ).
fof(or_1,axiom,
( or_1
<=> ! [X,Y] : is_a_theorem(implies(X,or(X,Y))) ) ).
fof(or_2,axiom,
( or_2
<=> ! [X,Y] : is_a_theorem(implies(Y,or(X,Y))) ) ).
fof(or_3,axiom,
( or_3
<=> ! [X,Y,Z] : is_a_theorem(implies(implies(X,Z),implies(implies(Y,Z),implies(or(X,Y),Z)))) ) ).
fof(equivalence_1,axiom,
( equivalence_1
<=> ! [X,Y] : is_a_theorem(implies(equiv(X,Y),implies(X,Y))) ) ).
fof(equivalence_2,axiom,
( equivalence_2
<=> ! [X,Y] : is_a_theorem(implies(equiv(X,Y),implies(Y,X))) ) ).
fof(equivalence_3,axiom,
( equivalence_3
<=> ! [X,Y] : is_a_theorem(implies(implies(X,Y),implies(implies(Y,X),equiv(X,Y)))) ) ).
%----Axioms for Rosser
fof(kn1,axiom,
( kn1
<=> ! [P] : is_a_theorem(implies(P,and(P,P))) ) ).
fof(kn2,axiom,
( kn2
<=> ! [P,Q] : is_a_theorem(implies(and(P,Q),P)) ) ).
fof(kn3,axiom,
( kn3
<=> ! [P,Q,R] : is_a_theorem(implies(implies(P,Q),implies(not(and(Q,R)),not(and(R,P))))) ) ).
%----Axioms for Luka
fof(cn1,axiom,
( cn1
<=> ! [P,Q,R] : is_a_theorem(implies(implies(P,Q),implies(implies(Q,R),implies(P,R)))) ) ).
fof(cn2,axiom,
( cn2
<=> ! [P,Q] : is_a_theorem(implies(P,implies(not(P),Q))) ) ).
fof(cn3,axiom,
( cn3
<=> ! [P] : is_a_theorem(implies(implies(not(P),P),P)) ) ).
%----Axioms for Principia
fof(r1,axiom,
( r1
<=> ! [P] : is_a_theorem(implies(or(P,P),P)) ) ).
fof(r2,axiom,
( r2
<=> ! [P,Q] : is_a_theorem(implies(Q,or(P,Q))) ) ).
fof(r3,axiom,
( r3
<=> ! [P,Q] : is_a_theorem(implies(or(P,Q),or(Q,P))) ) ).
%----This is the dependent one
fof(r4,axiom,
( r4
<=> ! [P,Q,R] : is_a_theorem(implies(or(P,or(Q,R)),or(Q,or(P,R)))) ) ).
fof(r5,axiom,
( r5
<=> ! [P,Q,R] : is_a_theorem(implies(implies(Q,R),implies(or(P,Q),or(P,R)))) ) ).
%------------------------------------------------------------------------------
./LCL006+1.ax
%------------------------------------------------------------------------------
% File : LCL006+1 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Propositional logic definitions
% Version : [She06] axioms.
% English :
% Refs : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [She06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 0 unt; 0 def)
% Number of atoms : 10 ( 5 equ)
% Maximal formula atoms : 2 ( 2 avg)
% Number of connectives : 5 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 4 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 6 ( 5 usr; 5 prp; 0-2 aty)
% Number of functors : 5 ( 5 usr; 0 con; 1-2 aty)
% Number of variables : 10 ( 10 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Definitions
fof(op_or,axiom,
( op_or
=> ! [X,Y] : or(X,Y) = not(and(not(X),not(Y))) ) ).
fof(op_and,axiom,
( op_and
=> ! [X,Y] : and(X,Y) = not(or(not(X),not(Y))) ) ).
fof(op_implies_and,axiom,
( op_implies_and
=> ! [X,Y] : implies(X,Y) = not(and(X,not(Y))) ) ).
fof(op_implies_or,axiom,
( op_implies_or
=> ! [X,Y] : implies(X,Y) = or(not(X),Y) ) ).
fof(op_equiv,axiom,
( op_equiv
=> ! [X,Y] : equiv(X,Y) = and(implies(X,Y),implies(Y,X)) ) ).
%------------------------------------------------------------------------------
./LCL006+2.ax
%------------------------------------------------------------------------------
% File : LCL006+2 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Hilbert's axiomatization of propositional logic
% Version : [HB34] axioms.
% English :
% Refs : [HB34] Hilbert & Bernays (1934), Grundlagen der Mathematick
% : [Hac66] Hackstaff (1966), Systems of Formal Logic
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 18 unt; 0 def)
% Number of atoms : 18 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 18 ( 18 usr; 18 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1
%------------------------------------------------------------------------------
%----Operator definitions to reduce everything to and & not
fof(hilbert_op_or,axiom,
op_or ).
fof(hilbert_op_implies_and,axiom,
op_implies_and ).
fof(hilbert_op_equiv,axiom,
op_equiv ).
%----The one explicit rule
fof(hilbert_modus_ponens,axiom,
modus_ponens ).
%----The axioms
fof(hilbert_modus_tollens,axiom,
modus_tollens ).
fof(hilbert_implies_1,axiom,
implies_1 ).
fof(hilbert_implies_2,axiom,
implies_2 ).
fof(hilbert_implies_3,axiom,
implies_3 ).
fof(hilbert_and_1,axiom,
and_1 ).
fof(hilbert_and_2,axiom,
and_2 ).
fof(hilbert_and_3,axiom,
and_3 ).
fof(hilbert_or_1,axiom,
or_1 ).
fof(hilbert_or_2,axiom,
or_2 ).
fof(hilbert_or_3,axiom,
or_3 ).
fof(hilbert_equivalence_1,axiom,
equivalence_1 ).
fof(hilbert_equivalence_2,axiom,
equivalence_2 ).
fof(hilbert_equivalence_3,axiom,
equivalence_3 ).
%----Admissible but not required for completeness. With it much more can
%----be done.
fof(substitution_of_equivalents,axiom,
substitution_of_equivalents ).
%------------------------------------------------------------------------------
./LCL006+3.ax
%------------------------------------------------------------------------------
% File : LCL006+3 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Lukasiewicz's axiomatization of propositional logic
% Version : [Zem73] axioms.
% English :
% Refs : [Zem73] Zeman (1973), Modal Logic, the Lewis-Modal systems
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 8 unt; 0 def)
% Number of atoms : 8 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 8 ( 8 usr; 8 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1
%------------------------------------------------------------------------------
%----Operator definitions to reduce everything to and & not
fof(luka_op_or,axiom,
op_or ).
fof(luka_op_implies,axiom,
op_implies ).
fof(luka_op_equiv,axiom,
op_equiv ).
%----The one explicit rule
fof(luka_modus_ponens,axiom,
modus_ponens ).
%----The axioms
fof(luka_cn1,axiom,
cn1 ).
fof(luka_cn2,axiom,
cn2 ).
fof(luka_cn3,axiom,
cn3 ).
%----Admissible but not required for completeness. With it much more can
%----be done.
fof(substitution_of_equivalents,axiom,
substitution_of_equivalents ).
%------------------------------------------------------------------------------
./LCL006+4.ax
%------------------------------------------------------------------------------
% File : LCL006+4 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Principia's axiomatization of propositional logic
% Version : [RW10] axioms.
% English :
% Refs : [RW10] Russell & Whitehead (1910), Principia Mathmatica
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 10 ( 10 unt; 0 def)
% Number of atoms : 10 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 10 ( 10 usr; 10 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1
%------------------------------------------------------------------------------
%----Operator definitions to reduce everything to and & not
fof(principia_op_implies_or,axiom,
op_implies_or ).
fof(principia_op_and,axiom,
op_and ).
fof(principia_op_equiv,axiom,
op_equiv ).
%----The one explicit rule
fof(principia_modus_ponens,axiom,
modus_ponens ).
%----The axioms
fof(principia_r1,axiom,
r1 ).
fof(principia_r2,axiom,
r2 ).
fof(principia_r3,axiom,
r3 ).
%----This is the redundant axiom in Principia
fof(principia_r4,axiom,
r4 ).
fof(principia_r5,axiom,
r5 ).
%----Admissible but not required for completeness. With it much more can
%----be done.
fof(substitution_of_equivalents,axiom,
substitution_of_equivalents ).
%------------------------------------------------------------------------------
./LCL006+5.ax
%------------------------------------------------------------------------------
% File : LCL006+5 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional)
% Axioms : Rosser's axiomatization of propositional logic
% Version : [Zem73] axioms.
% English :
% Refs : [Zem73] Zeman (1973), Modal Logic, the Lewis-Modal systems
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 8 unt; 0 def)
% Number of atoms : 8 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 8 ( 8 usr; 8 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1
%------------------------------------------------------------------------------
%----Operator definitions to reduce everything to and & not
fof(rosser_op_or,axiom,
op_or ).
fof(rosser_op_implies_and,axiom,
op_implies_and ).
fof(rosser_op_equiv,axiom,
op_equiv ).
%----The one explicit rule
fof(rosser_modus_ponens,axiom,
modus_ponens ).
%----The axioms
fof(rosser_kn1,axiom,
kn1 ).
fof(rosser_kn2,axiom,
kn2 ).
fof(rosser_kn3,axiom,
kn3 ).
%----Admissible but not required for completeness. With it much more can
%----be done.
fof(substitution_of_equivalents,axiom,
substitution_of_equivalents ).
%------------------------------------------------------------------------------
./LCL007+0.ax
%------------------------------------------------------------------------------
% File : LCL007+0 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : Propositional modal logic rules and axioms
% Version : [She06] axioms.
% English :
% Refs : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [She06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 23 ( 0 unt; 0 def)
% Number of atoms : 52 ( 1 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 29 ( 0 ~; 0 |; 2 &)
% ( 23 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 4 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 25 ( 24 usr; 23 prp; 0-2 aty)
% Number of functors : 7 ( 7 usr; 0 con; 1-2 aty)
% Number of variables : 39 ( 39 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Rules
fof(necessitation,axiom,
( necessitation
<=> ! [X] :
( is_a_theorem(X)
=> is_a_theorem(necessarily(X)) ) ) ).
fof(modus_ponens_strict_implies,axiom,
( modus_ponens_strict_implies
<=> ! [X,Y] :
( ( is_a_theorem(X)
& is_a_theorem(strict_implies(X,Y)) )
=> is_a_theorem(Y) ) ) ).
fof(adjunction,axiom,
( adjunction
<=> ! [X,Y] :
( ( is_a_theorem(X)
& is_a_theorem(Y) )
=> is_a_theorem(and(X,Y)) ) ) ).
fof(substitution_strict_equiv,axiom,
( substitution_strict_equiv
<=> ! [X,Y] :
( is_a_theorem(strict_equiv(X,Y))
=> X = Y ) ) ).
%----"Standard" modal axioms
fof(axiom_K,axiom,
( axiom_K
<=> ! [X,Y] : is_a_theorem(implies(necessarily(implies(X,Y)),implies(necessarily(X),necessarily(Y)))) ) ).
fof(axiom_M,axiom,
( axiom_M
<=> ! [X] : is_a_theorem(implies(necessarily(X),X)) ) ).
fof(axiom_4,axiom,
( axiom_4
<=> ! [X] : is_a_theorem(implies(necessarily(X),necessarily(necessarily(X)))) ) ).
fof(axiom_B,axiom,
( axiom_B
<=> ! [X] : is_a_theorem(implies(X,necessarily(possibly(X)))) ) ).
fof(axiom_5,axiom,
( axiom_5
<=> ! [X] : is_a_theorem(implies(possibly(X),necessarily(possibly(X)))) ) ).
%----Axioms for Lewis systems
fof(axiom_s1,axiom,
( axiom_s1
<=> ! [X,Y,Z] : is_a_theorem(implies(and(necessarily(implies(X,Y)),necessarily(implies(Y,Z))),necessarily(implies(X,Z)))) ) ).
fof(axiom_s2,axiom,
( axiom_s2
<=> ! [P,Q] : is_a_theorem(strict_implies(possibly(and(P,Q)),and(possibly(P),possibly(Q)))) ) ).
fof(axiom_s3,axiom,
( axiom_s3
<=> ! [X,Y] : is_a_theorem(strict_implies(strict_implies(X,Y),strict_implies(not(possibly(Y)),not(possibly(X))))) ) ).
fof(axiom_s4,axiom,
( axiom_s4
<=> ! [X] : is_a_theorem(strict_implies(necessarily(X),necessarily(necessarily(X)))) ) ).
%----Axioms for S1-0
fof(axiom_m1,axiom,
( axiom_m1
<=> ! [X,Y] : is_a_theorem(strict_implies(and(X,Y),and(Y,X))) ) ).
fof(axiom_m2,axiom,
( axiom_m2
<=> ! [X,Y] : is_a_theorem(strict_implies(and(X,Y),X)) ) ).
fof(axiom_m3,axiom,
( axiom_m3
<=> ! [X,Y,Z] : is_a_theorem(strict_implies(and(and(X,Y),Z),and(X,and(Y,Z)))) ) ).
fof(axiom_m4,axiom,
( axiom_m4
<=> ! [X] : is_a_theorem(strict_implies(X,and(X,X))) ) ).
fof(axiom_m5,axiom,
( axiom_m5
<=> ! [X,Y,Z] : is_a_theorem(strict_implies(and(strict_implies(X,Y),strict_implies(Y,Z)),strict_implies(X,Z))) ) ).
%----Axioms for building from S1-0
fof(axiom_m6,axiom,
( axiom_m6
<=> ! [X] : is_a_theorem(strict_implies(X,possibly(X))) ) ).
fof(axiom_m7,axiom,
( axiom_m7
<=> ! [P,Q] : is_a_theorem(strict_implies(possibly(and(P,Q)),P)) ) ).
fof(axiom_m8,axiom,
( axiom_m8
<=> ! [P,Q] : is_a_theorem(strict_implies(strict_implies(P,Q),strict_implies(possibly(P),possibly(Q)))) ) ).
fof(axiom_m9,axiom,
( axiom_m9
<=> ! [X] : is_a_theorem(strict_implies(possibly(possibly(X)),possibly(X))) ) ).
fof(axiom_m10,axiom,
( axiom_m10
<=> ! [X] : is_a_theorem(strict_implies(possibly(X),necessarily(possibly(X)))) ) ).
%------------------------------------------------------------------------------
./LCL007+1.ax
%------------------------------------------------------------------------------
% File : LCL007+1 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : Propositional modal logic definitions
% Version : [She06] axioms.
% English :
% Refs : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [She06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 0 unt; 0 def)
% Number of atoms : 8 ( 4 equ)
% Maximal formula atoms : 2 ( 2 avg)
% Number of connectives : 4 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 4 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 5 ( 4 usr; 4 prp; 0-2 aty)
% Number of functors : 7 ( 7 usr; 0 con; 1-2 aty)
% Number of variables : 6 ( 6 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Definitions
fof(op_possibly,axiom,
( op_possibly
=> ! [X] : possibly(X) = not(necessarily(not(X))) ) ).
fof(op_necessarily,axiom,
( op_necessarily
=> ! [X] : necessarily(X) = not(possibly(not(X))) ) ).
fof(op_strict_implies,axiom,
( op_strict_implies
=> ! [X,Y] : strict_implies(X,Y) = necessarily(implies(X,Y)) ) ).
fof(op_strict_equiv,axiom,
( op_strict_equiv
=> ! [X,Y] : strict_equiv(X,Y) = and(strict_implies(X,Y),strict_implies(Y,X)) ) ).
%------------------------------------------------------------------------------
./LCL007+2.ax
%------------------------------------------------------------------------------
% File : LCL007+2 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : KM5 axiomatization of S5 based on Hilbert's PC
% Version : [HC96] axioms.
% English :
% Refs : [HC96] Hughes & Cresswell (1996), A New Introduction to Modal
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 5 unt; 0 def)
% Number of atoms : 5 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 5 ( 5 usr; 5 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1, LCL006+2 LCL007+0 LCL007+1
%------------------------------------------------------------------------------
%----Modal definitions
fof(km5_op_possibly,axiom,
op_possibly ).
%----Modal rules
fof(km5_necessitation,axiom,
necessitation ).
%----Modal axioms
fof(km5_axiom_K,axiom,
axiom_K ).
fof(km5_axiom_M,axiom,
axiom_M ).
fof(km5_axiom_5,axiom,
axiom_5 ).
%------------------------------------------------------------------------------
./LCL007+3.ax
%------------------------------------------------------------------------------
% File : LCL007+3 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : KM4B axiomatization of S5 based on Hilbert's PC
% Version : [HC96] axioms.
% English :
% Refs : [HC96] Hughes & Cresswell (1996), A New Introduction to Modal
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 6 unt; 0 def)
% Number of atoms : 6 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 6 ( 6 usr; 6 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+0, LCL006+1, LCL006+2 LCL007+0 LCL007+1
%------------------------------------------------------------------------------
%----Modal definitions
fof(km4b_op_possibly,axiom,
op_possibly ).
%----Modal rules
fof(km4b_necessitation,axiom,
necessitation ).
%----Modal axioms
fof(km4b_axiom_K,axiom,
axiom_K ).
fof(km4b_axiom_M,axiom,
axiom_M ).
fof(km4b_axiom_4,axiom,
axiom_4 ).
fof(km4b_axiom_B,axiom,
axiom_B ).
%------------------------------------------------------------------------------
./LCL007+4.ax
%------------------------------------------------------------------------------
% File : LCL007+4 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : Axiomatization of S1-0
% Version : [Fey50] axioms.
% English :
% Refs : [Fey50] Feys (1950), Les systemes formalises de modalites aris
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 14 ( 14 unt; 0 def)
% Number of atoms : 14 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 14 ( 14 usr; 14 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+1, LCL007+0, LCL007+1
%------------------------------------------------------------------------------
%----Modal definitions
fof(s1_0_op_possibly,axiom,
op_possibly ).
fof(s1_0_op_or,axiom,
op_or ).
fof(s1_0_op_implies,axiom,
op_implies ).
fof(s1_0_op_strict_implies,axiom,
op_strict_implies ).
fof(s1_0_op_equiv,axiom,
op_equiv ).
fof(s1_0_op_strict_equiv,axiom,
op_strict_equiv ).
%----Modal rules
fof(s1_0_modus_ponens_strict_implies,axiom,
modus_ponens_strict_implies ).
fof(s1_0_substitution_strict_equiv,axiom,
substitution_strict_equiv ).
fof(s1_0_adjunction,axiom,
adjunction ).
%----Modal axioms
fof(s1_0_axiom_m1,axiom,
axiom_m1 ).
fof(s1_0_axiom_m2,axiom,
axiom_m2 ).
fof(s1_0_axiom_m3,axiom,
axiom_m3 ).
fof(s1_0_axiom_m4,axiom,
axiom_m4 ).
fof(s1_0_axiom_m5,axiom,
axiom_m5 ).
%------------------------------------------------------------------------------
./LCL007+5.ax
%------------------------------------------------------------------------------
% File : LCL007+5 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : M6S3M9B axiomatization of S5 based on S1-0
% Version : [Zem73] axioms.
% English :
% Refs : [Zem73] Zeman (1973), Modal Logic, the Lewis-Modal systems
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 4 unt; 0 def)
% Number of atoms : 4 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 4 ( 4 usr; 4 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+1, LCL007+0, LCL007+1, LCL007+4.ax
%------------------------------------------------------------------------------
%----Modal axioms
fof(s1_0_m6s3m9b_axiom_m6,axiom,
axiom_m6 ).
fof(s1_0_m6s3m9b_axiom_s3,axiom,
axiom_s3 ).
fof(s1_0_m6s3m9b_axiom_m9,axiom,
axiom_m9 ).
fof(s1_0_m6s3m9b_axiom_b,axiom,
axiom_b ).
%------------------------------------------------------------------------------
./LCL007+6.ax
%------------------------------------------------------------------------------
% File : LCL007+6 : TPTP v8.2.0. Released v3.3.0.
% Domain : Logic Calculi (Propositional modal)
% Axioms : M10 axiomatization of S5 based on S1-0
% Version : [Zem73] axioms.
% English :
% Refs : [Zem73] Zeman (1973), Modal Logic, the Lewis-Modal systems
% : [Hal] Halleck (URL), John Halleck's Logic Systems
% : [She06] Shen (2006), Automated Proofs of Equivalence of Modal
% Source : [Hal]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 1 ( 1 unt; 0 def)
% Number of atoms : 1 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 1 ( 1 usr; 1 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments : Requires LCL006+1, LCL007+0, LCL007+1, LCL007+4.ax
%------------------------------------------------------------------------------
%----Modal axioms
fof(s1_0_m10_axiom_m10,axiom,
axiom_m10 ).
%------------------------------------------------------------------------------
./LCL008^0.ax
%------------------------------------------------------------------------------
% File : LCL008^0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Logical Calculi (Modal Logic)
% Axioms : Multi-Modal Logic
% Version : [Ben08] axioms : Especial.
% English :
% Refs : [Ben08] Benzmueller (2008), Email to G. Sutcliffe
% : [BP08] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben08]
% Names : MODAL_LOGIC [Ben08]
% Status : Satisfiable
% Syntax : Number of formulae : 35 ( 15 unt; 20 typ; 15 def)
% Number of atoms : 37 ( 15 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 35 ( 3 ~; 1 |; 2 &; 28 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 28 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 79 ( 79 >; 0 *; 0 +; 0 <<)
% Number of symbols : 22 ( 19 usr; 3 con; 0-3 aty)
% Number of variables : 36 ( 28 ^ 4 !; 4 ?; 36 :)
% SPC :
% Comments : THF0 syntax
%------------------------------------------------------------------------------
%----Our possible worlds are are encoded as terms the type $i;
%----Here is a constant for the current world:
thf(current_world,type,
current_world: $i ).
%----Modal logic propositions are then becoming predicates of type ( $i> $o);
%----We introduce some atomic multi-modal logic propositions as constants of
%----type ( $i> $o):
thf(prop_a,type,
prop_a: $i > $o ).
thf(prop_b,type,
prop_b: $i > $o ).
thf(prop_c,type,
prop_c: $i > $o ).
%----The idea is that an atomic multi-modal logic proposition P (of type
%---- $i > $o) holds at a world W (of type $i) iff W is in P resp. (P @ W)
%----Now we define the multi-modal logic connectives by reducing them to set
%----operations
%----mfalse corresponds to emptyset (of type $i)
thf(mfalse_decl,type,
mfalse: $i > $o ).
thf(mfalse,definition,
( mfalse
= ( ^ [X: $i] : $false ) ) ).
%----mtrue corresponds to the universal set (of type $i)
thf(mtrue_decl,type,
mtrue: $i > $o ).
thf(mtrue,definition,
( mtrue
= ( ^ [X: $i] : $true ) ) ).
%----mnot corresponds to set complement
thf(mnot_decl,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [X: $i > $o,U: $i] :
~ ( X @ U ) ) ) ).
%----mor corresponds to set union
thf(mor_decl,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
%----mand corresponds to set intersection
thf(mand_decl,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
%----mimpl defined via mnot and mor
thf(mimpl_decl,type,
mimpl: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimpl,definition,
( mimpl
= ( ^ [U: $i > $o,V: $i > $o] : ( mor @ ( mnot @ U ) @ V ) ) ) ).
%----miff defined via mand and mimpl
thf(miff_decl,type,
miff: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(miff,definition,
( miff
= ( ^ [U: $i > $o,V: $i > $o] : ( mand @ ( mimpl @ U @ V ) @ ( mimpl @ V @ U ) ) ) ) ).
%----mbox
thf(mbox_decl,type,
mbox: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mbox,definition,
( mbox
= ( ^ [R: $i > $i > $o,P: $i > $o,X: $i] :
! [Y: $i] :
( ( R @ X @ Y )
=> ( P @ Y ) ) ) ) ).
%----mdia
thf(mdia_decl,type,
mdia: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mdia,definition,
( mdia
= ( ^ [R: $i > $i > $o,P: $i > $o,X: $i] :
? [Y: $i] :
( ( R @ X @ Y )
& ( P @ Y ) ) ) ) ).
%----For mall and mexists, i.e., first order modal logic, we declare a new
%----base type individuals
thf(individuals_decl,type,
individuals: $tType ).
%----mall
thf(mall_decl,type,
mall: ( individuals > $i > $o ) > $i > $o ).
thf(mall,definition,
( mall
= ( ^ [P: individuals > $i > $o,W: $i] :
! [X: individuals] : ( P @ X @ W ) ) ) ).
%----mexists
thf(mexists_decl,type,
mexists: ( individuals > $i > $o ) > $i > $o ).
thf(mexists,definition,
( mexists
= ( ^ [P: individuals > $i > $o,W: $i] :
? [X: individuals] : ( P @ X @ W ) ) ) ).
%----Validity of a multi modal logic formula can now be encoded as
thf(mvalid_decl,type,
mvalid: ( $i > $o ) > $o ).
thf(mvalid,definition,
( mvalid
= ( ^ [P: $i > $o] :
! [W: $i] : ( P @ W ) ) ) ).
%----Satisfiability of a multi modal logic formula can now be encoded as
thf(msatisfiable_decl,type,
msatisfiable: ( $i > $o ) > $o ).
thf(msatisfiable,definition,
( msatisfiable
= ( ^ [P: $i > $o] :
? [W: $i] : ( P @ W ) ) ) ).
%----Countersatisfiability of a multi modal logic formula can now be encoded as
thf(mcountersatisfiable_decl,type,
mcountersatisfiable: ( $i > $o ) > $o ).
thf(mcountersatisfiable,definition,
( mcountersatisfiable
= ( ^ [P: $i > $o] :
? [W: $i] :
~ ( P @ W ) ) ) ).
%----Invalidity of a multi modal logic formula can now be encoded as
thf(minvalid_decl,type,
minvalid: ( $i > $o ) > $o ).
thf(minvalid,definition,
( minvalid
= ( ^ [P: $i > $o] :
! [W: $i] :
~ ( P @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL009^0.ax
%------------------------------------------------------------------------------
% File : LCL009^0 : TPTP v8.2.0. Released v3.7.0.
% Domain : Logical Calculi (Modal Logic)
% Axioms : Translating constructive S4 (CS4) to bimodal classical S4 (BS4)
% Version : [AM+01] axioms.
% English :
% Refs : [AM+01] Alechina et al. (2001), Categorical and Kripke Semanti
% : [Gar09] Garg (2009), Email to Geoff Sutcliffe
% Source : [Gar09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 25 ( 9 unt; 11 typ; 9 def)
% Number of atoms : 69 ( 9 equ; 0 cnn)
% Maximal formula atoms : 10 ( 2 avg)
% Number of connectives : 57 ( 0 ~; 0 |; 0 &; 57 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 3 avg; 57 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 49 ( 49 >; 0 *; 0 +; 0 <<)
% Number of symbols : 21 ( 20 usr; 9 con; 0-3 aty)
% Number of variables : 15 ( 10 ^ 5 !; 0 ?; 15 :)
% SPC :
% Comments : Requires LCL008^0.ax
% : THF0 syntax
%------------------------------------------------------------------------------
%----To encode constructive S4 into bimodal classical S4, we need two relations
%----reli to encode intuitionistic accessibility, and relr to encode modal
%----accessibility.
thf(reli,type,
reli: $i > $i > $o ).
thf(relr,type,
relr: $i > $i > $o ).
%----We now introduce one predicate for each connective of CS4, and define the
%----predicates following [AM+01].
thf(cs4_atom_decl,type,
cs4_atom: ( $i > $o ) > $i > $o ).
thf(cs4_and_decl,type,
cs4_and: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(cs4_or_decl,type,
cs4_or: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(cs4_impl_decl,type,
cs4_impl: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(cs4_true_decl,type,
cs4_true: $i > $o ).
thf(cs4_false_decl,type,
cs4_false: $i > $o ).
thf(cs4_all_decl,type,
cs4_all: ( individuals > $i > $o ) > $i > $o ).
thf(cs4_box_decl,type,
cs4_box: ( $i > $o ) > $i > $o ).
thf(cs4_atom,definition,
( cs4_atom
= ( ^ [P: $i > $o] : ( mbox @ reli @ P ) ) ) ).
thf(cs4_and,definition,
( cs4_and
= ( ^ [A: $i > $o,B: $i > $o] : ( mand @ A @ B ) ) ) ).
thf(cs4_or,definition,
( cs4_or
= ( ^ [A: $i > $o,B: $i > $o] : ( mor @ A @ B ) ) ) ).
thf(cs4_impl,definition,
( cs4_impl
= ( ^ [A: $i > $o,B: $i > $o] : ( mbox @ reli @ ( mimpl @ A @ B ) ) ) ) ).
thf(cs4_true,definition,
cs4_true = mtrue ).
thf(cs4_false,definition,
cs4_false = mfalse ).
thf(cs4_all,definition,
( cs4_all
= ( ^ [A: individuals > $i > $o] : ( mbox @ reli @ ( mall @ A ) ) ) ) ).
thf(cs4_box,definition,
( cs4_box
= ( ^ [A: $i > $o] : ( mbox @ reli @ ( mbox @ relr @ A ) ) ) ) ).
%----Validity in CS4
thf(cs4_valid_decl,type,
cs4_valid: ( $i > $o ) > $o ).
thf(cs4_valid_def,definition,
( cs4_valid
= ( ^ [A: $i > $o] : ( mvalid @ A ) ) ) ).
%----Axioms to make the bimodal logic S4xS4.
thf(refl_axiom_i,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ reli @ A ) @ A ) ) ).
thf(refl_axiom_r,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ relr @ A ) @ A ) ) ).
thf(trans_axiom_i,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ reli @ A ) @ ( mbox @ reli @ ( mbox @ reli @ A ) ) ) ) ).
thf(trans_axiom_r,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ relr @ A ) @ ( mbox @ relr @ ( mbox @ relr @ A ) ) ) ) ).
%----Finally, we need a commutativity axiom to recover the axiom 4 in the
%----translation. We need: [i][r] A --> [r][i] A.
thf(ax_i_r_commute,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ reli @ ( mbox @ relr @ A ) ) @ ( mbox @ relr @ ( mbox @ reli @ A ) ) ) ) ).
%------------------------------------------------------------------------------
./LCL010^0.ax
%------------------------------------------------------------------------------
% File : LCL010^0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi
% Axioms : Propositional intuitionistic logic in HOL
% Version : [Goe33] axioms.
% English : An embedding of propositional intuitionisitc logic in HOL based
% on Goedel's first translation of propositional intuitionistic
% logic to modal logic S4.
% Refs : [Goe33] Goedel (1933), An Interpretation of the Intuitionistic
% : [Gol06] Goldblatt (2006), Mathematical Modal Logic: A View of
% : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% : [BP10] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben09]
% Names : IL2HOL_1 [Ben09]
% Status : Satisfiable
% Syntax : Number of formulae : 41 ( 20 unt; 20 typ; 19 def)
% Number of atoms : 63 ( 19 equ; 0 cnn)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 55 ( 3 ~; 1 |; 2 &; 47 @)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 1 avg; 47 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 95 ( 95 >; 0 *; 0 +; 0 <<)
% Number of symbols : 22 ( 20 usr; 1 con; 0-3 aty)
% Number of variables : 40 ( 31 ^ 7 !; 2 ?; 40 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Modal Logic S4 in HOL
%----We define an accessibility relation irel
thf(irel_type,type,
irel: $i > $i > $o ).
%----We require reflexivity and transitivity for irel
thf(refl_axiom,axiom,
! [X: $i] : ( irel @ X @ X ) ).
thf(trans_axiom,axiom,
! [X: $i,Y: $i,Z: $i] :
( ( ( irel @ X @ Y )
& ( irel @ Y @ Z ) )
=> ( irel @ X @ Z ) ) ).
%----We define S4 connective mnot (as set complement)
thf(mnot_decl_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [X: $i > $o,U: $i] :
~ ( X @ U ) ) ) ).
%----We define S4 connective mor (as set union)
thf(mor_decl_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
%----We define S4 connective mand (as set intersection)
thf(mand_decl_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
%----We define S4 connective mimpl
thf(mimplies_decl_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [U: $i > $o,V: $i > $o] : ( mor @ ( mnot @ U ) @ V ) ) ) ).
%----Definition of mbox_s4; since irel is reflexive and transitive,
%----it is easy to show that the K and the T axiom hold for mbox_s4
thf(mbox_s4_decl_type,type,
mbox_s4: ( $i > $o ) > $i > $o ).
thf(mbox_s4,definition,
( mbox_s4
= ( ^ [P: $i > $o,X: $i] :
! [Y: $i] :
( ( irel @ X @ Y )
=> ( P @ Y ) ) ) ) ).
%----Intuitionistic Logic in Modal Logic S4
%----Definition of iatom: iatom P = P
%----Goedel maps atoms to atoms
thf(iatom_type,type,
iatom: ( $i > $o ) > $i > $o ).
thf(iatom,definition,
( iatom
= ( ^ [P: $i > $o] : P ) ) ).
%----Definition of inot: inot P = mnot (mbox_s4 P)
thf(inot_type,type,
inot: ( $i > $o ) > $i > $o ).
thf(inot,definition,
( inot
= ( ^ [P: $i > $o] : ( mnot @ ( mbox_s4 @ P ) ) ) ) ).
%----Definition of true and false
thf(itrue_type,type,
itrue: $i > $o ).
thf(itrue,definition,
( itrue
= ( ^ [W: $i] : $true ) ) ).
thf(ifalse_type,type,
ifalse: $i > $o ).
thf(ifalse,definition,
( ifalse
= ( inot @ itrue ) ) ).
%----Definition of iand: iand P Q = (mand P Q)
thf(iand_type,type,
iand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iand,definition,
( iand
= ( ^ [P: $i > $o,Q: $i > $o] : ( mand @ P @ Q ) ) ) ).
%----Definition of ior: ior P Q = (mor (mbox_s4 P) (mbox_s4 Q))
thf(ior_type,type,
ior: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ior,definition,
( ior
= ( ^ [P: $i > $o,Q: $i > $o] : ( mor @ ( mbox_s4 @ P ) @ ( mbox_s4 @ Q ) ) ) ) ).
%----Definition of iimplies: iimplies P Q =
%---- (mimplies (mbox_s4 P) (mbox_s4 Q))
thf(iimplies_type,type,
iimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplies,definition,
( iimplies
= ( ^ [P: $i > $o,Q: $i > $o] : ( mimplies @ ( mbox_s4 @ P ) @ ( mbox_s4 @ Q ) ) ) ) ).
%----Definition of iimplied: iimplied P Q = (iimplies Q P)
thf(iimplied_type,type,
iimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplied,definition,
( iimplied
= ( ^ [P: $i > $o,Q: $i > $o] : ( iimplies @ Q @ P ) ) ) ).
%----Definition of iequiv: iequiv P Q =
%---- (iand (iimplies P Q) (iimplies Q P))
thf(iequiv_type,type,
iequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iequiv,definition,
( iequiv
= ( ^ [P: $i > $o,Q: $i > $o] : ( iand @ ( iimplies @ P @ Q ) @ ( iimplies @ Q @ P ) ) ) ) ).
%----Definition of ixor: ixor P Q = (inot (iequiv P Q)
thf(ixor_type,type,
ixor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ixor,definition,
( ixor
= ( ^ [P: $i > $o,Q: $i > $o] : ( inot @ ( iequiv @ P @ Q ) ) ) ) ).
%----Definition of validity
thf(ivalid_type,type,
ivalid: ( $i > $o ) > $o ).
thf(ivalid,definition,
( ivalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of satisfiability
thf(isatisfiable_type,type,
isatisfiable: ( $i > $o ) > $o ).
thf(isatisfiable,definition,
( isatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of countersatisfiability
thf(icountersatisfiable_type,type,
icountersatisfiable: ( $i > $o ) > $o ).
thf(icountersatisfiable,definition,
( icountersatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] :
~ ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(iinvalid_type,type,
iinvalid: ( $i > $o ) > $o ).
thf(iinvalid,definition,
( iinvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL011^0.ax
%------------------------------------------------------------------------------
% File : LCL011^0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi
% Axioms : Propositional intuitionistic logic in HOL
% Version : [Goe33] axioms.
% English : An embedding of propositional intuitionisitc logic in HOL based
% on Goedel's second translation of propositional intuitionistic
% logic to modal logic S4.
% Refs : [Goe33] Goedel (1933), An Interpretation of the Intuitionistic
% : [Gol06] Goldblatt (2006), Mathematical Modal Logic: A View of
% : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% : [BP10] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben09]
% Names : IL2HOL_2 [Ben09]
% Status : Satisfiable
% Syntax : Number of formulae : 41 ( 20 unt; 20 typ; 19 def)
% Number of atoms : 65 ( 19 equ; 0 cnn)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 57 ( 3 ~; 1 |; 2 &; 49 @)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 1 avg; 49 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 95 ( 95 >; 0 *; 0 +; 0 <<)
% Number of symbols : 22 ( 20 usr; 1 con; 0-3 aty)
% Number of variables : 40 ( 31 ^ 7 !; 2 ?; 40 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Modal Logic S4 in HOL
%----We define an accessibility relation irel
thf(irel_type,type,
irel: $i > $i > $o ).
%----We require reflexivity and transitivity for irel
thf(refl_axiom,axiom,
! [X: $i] : ( irel @ X @ X ) ).
thf(trans_axiom,axiom,
! [X: $i,Y: $i,Z: $i] :
( ( ( irel @ X @ Y )
& ( irel @ Y @ Z ) )
=> ( irel @ X @ Z ) ) ).
%----We define S4 connective mnot (as set complement)
thf(mnot_decl_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [X: $i > $o,U: $i] :
~ ( X @ U ) ) ) ).
%----We define S4 connective mor (as set union)
thf(mor_decl_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
%----We define S4 connective mand (as set intersection)
thf(mand_decl_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
%----We define S4 connective mimpl
thf(mimplies_decl_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [U: $i > $o,V: $i > $o] : ( mor @ ( mnot @ U ) @ V ) ) ) ).
%----Definition of mbox_s4; since irel is reflexive and transitive,
%----it is easy to show that the K and the T axiom hold for mbox_s4
thf(mbox_s4_decl_type,type,
mbox_s4: ( $i > $o ) > $i > $o ).
thf(mbox_s4,definition,
( mbox_s4
= ( ^ [P: $i > $o,X: $i] :
! [Y: $i] :
( ( irel @ X @ Y )
=> ( P @ Y ) ) ) ) ).
%----Intuitionistic Logic in Modal Logic S4
%----Definition of iatom: iatom P = P
%----Goedel maps atoms to atoms
thf(iatom_type,type,
iatom: ( $i > $o ) > $i > $o ).
thf(iatom,definition,
( iatom
= ( ^ [P: $i > $o] : P ) ) ).
%----Definition of inot: inot P = (mbox_s4 (mnot (mbox_s4 P)))
thf(inot_type,type,
inot: ( $i > $o ) > $i > $o ).
thf(inot,definition,
( inot
= ( ^ [P: $i > $o] : ( mnot @ ( mbox_s4 @ P ) ) ) ) ).
%----Definition of true and false
thf(itrue_type,type,
itrue: $i > $o ).
thf(itrue,definition,
( itrue
= ( ^ [W: $i] : $true ) ) ).
thf(ifalse_type,type,
ifalse: $i > $o ).
thf(ifalse,definition,
( ifalse
= ( inot @ itrue ) ) ).
%----Definition of iand: iand P Q = (mand (mbox_s4 P) (mbox_s4 Q))
thf(iand_type,type,
iand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iand,definition,
( iand
= ( ^ [P: $i > $o,Q: $i > $o] : ( mand @ ( mbox_s4 @ P ) @ ( mbox_s4 @ Q ) ) ) ) ).
%---- Definition of ior: ior P Q = (mor (mbox_s4 P) (mbox_s4 Q))
thf(ior_type,type,
ior: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ior,definition,
( ior
= ( ^ [P: $i > $o,Q: $i > $o] : ( mor @ ( mbox_s4 @ P ) @ ( mbox_s4 @ Q ) ) ) ) ).
%----Definition of iimplies: iimplies P Q =
%---- (mimplies (mbox_s4 P) (mbox_s4 Q))
thf(iimplies_type,type,
iimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplies,definition,
( iimplies
= ( ^ [P: $i > $o,Q: $i > $o] : ( mimplies @ ( mbox_s4 @ P ) @ ( mbox_s4 @ Q ) ) ) ) ).
%----Definition of iimplied: iimplied P Q = (iimplies Q P)
thf(iimplied_type,type,
iimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplied,definition,
( iimplied
= ( ^ [P: $i > $o,Q: $i > $o] : ( iimplies @ Q @ P ) ) ) ).
%----Definition of iequiv: iequiv P Q =
%---- (iand (iimplies P Q) (iimplies Q P))
thf(iequiv_type,type,
iequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iequiv,definition,
( iequiv
= ( ^ [P: $i > $o,Q: $i > $o] : ( iand @ ( iimplies @ P @ Q ) @ ( iimplies @ Q @ P ) ) ) ) ).
%----Definition of ixor: ixor P Q = (inot (iequiv P Q)
thf(ixor_type,type,
ixor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ixor,definition,
( ixor
= ( ^ [P: $i > $o,Q: $i > $o] : ( inot @ ( iequiv @ P @ Q ) ) ) ) ).
%----Definition of validity
thf(ivalid_type,type,
ivalid: ( $i > $o ) > $o ).
thf(ivalid,definition,
( ivalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of satisfiability
thf(isatisfiable_type,type,
isatisfiable: ( $i > $o ) > $o ).
thf(isatisfiable,definition,
( isatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of countersatisfiability
thf(icountersatisfiable_type,type,
icountersatisfiable: ( $i > $o ) > $o ).
thf(icountersatisfiable,definition,
( icountersatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] :
~ ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(iinvalid_type,type,
iinvalid: ( $i > $o ) > $o ).
thf(iinvalid,definition,
( iinvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL012^0.ax
%------------------------------------------------------------------------------
% File : LCL012^0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi
% Axioms : Propositional intuitionistic logic in HOL
% Version : [MT48] axioms.
% English : An embedding of propositional intuitionisitc logic in HOL based
% on the McKinsey/Tarski translation of propositional intuitionistic
% logic to modal logic S4.
% Refs : [MT48] McKinsey & Tarski (1948), Some Theorems about the Sent
% : [Gol06] Goldblatt (2006), Mathematical Modal Logic: A View of
% : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% : [BP10] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben09]
% Names : IL2HOL_3 [Ben09]
% Status : Satisfiable
% Syntax : Number of formulae : 41 ( 20 unt; 20 typ; 19 def)
% Number of atoms : 61 ( 19 equ; 0 cnn)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 53 ( 3 ~; 1 |; 2 &; 45 @)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 1 avg; 45 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 95 ( 95 >; 0 *; 0 +; 0 <<)
% Number of symbols : 22 ( 20 usr; 1 con; 0-3 aty)
% Number of variables : 40 ( 31 ^ 7 !; 2 ?; 40 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Modal Logic S4 in HOL
%----We define an accessibility relation irel
thf(irel_type,type,
irel: $i > $i > $o ).
%----We require reflexivity and transitivity for irel
thf(refl_axiom,axiom,
! [X: $i] : ( irel @ X @ X ) ).
thf(trans_axiom,axiom,
! [X: $i,Y: $i,Z: $i] :
( ( ( irel @ X @ Y )
& ( irel @ Y @ Z ) )
=> ( irel @ X @ Z ) ) ).
%----We define S4 connective mnot (as set complement)
thf(mnot_decl_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [X: $i > $o,U: $i] :
~ ( X @ U ) ) ) ).
%----We define S4 connective mor (as set union)
thf(mor_decl_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
%----We define S4 connective mand (as set intersection)
thf(mand_decl_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
%----We define S4 connective mimpl
thf(mimplies_decl_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [U: $i > $o,V: $i > $o] : ( mor @ ( mnot @ U ) @ V ) ) ) ).
%----Definition of mbox_s4; since irel is reflexive and transitive,
%----it is easy to show that the K and the T axiom hold for mbox_s4
thf(mbox_s4_decl_type,type,
mbox_s4: ( $i > $o ) > $i > $o ).
thf(mbox_s4,definition,
( mbox_s4
= ( ^ [P: $i > $o,X: $i] :
! [Y: $i] :
( ( irel @ X @ Y )
=> ( P @ Y ) ) ) ) ).
%----Intuitionistic Logic in Modal Logic S4
%----Definition of iatom: iatom P = (mbox_s4 P)
thf(iatom_type,type,
iatom: ( $i > $o ) > $i > $o ).
thf(iatom,definition,
( iatom
= ( ^ [P: $i > $o] : ( mbox_s4 @ P ) ) ) ).
%----Definition of inot: inot P = (mbox_s4 (mnot P))
thf(inot_type,type,
inot: ( $i > $o ) > $i > $o ).
thf(inot,definition,
( inot
= ( ^ [P: $i > $o] : ( mbox_s4 @ ( mnot @ P ) ) ) ) ).
%----Definition of true and false
thf(itrue_type,type,
itrue: $i > $o ).
thf(itrue,definition,
( itrue
= ( ^ [W: $i] : $true ) ) ).
thf(ifalse_type,type,
ifalse: $i > $o ).
thf(ifalse,definition,
( ifalse
= ( inot @ itrue ) ) ).
%----Definition of iand: iand P Q = (mand P Q)
thf(iand_type,type,
iand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iand,definition,
( iand
= ( ^ [P: $i > $o,Q: $i > $o] : ( mand @ P @ Q ) ) ) ).
%----Definition of ior: ior P Q = (mor P Q)
thf(ior_type,type,
ior: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ior,definition,
( ior
= ( ^ [P: $i > $o,Q: $i > $o] : ( mor @ P @ Q ) ) ) ).
%----Definition of iimplies: iimplies P Q =
%---- (mbox_s4 (mimiplies P Q)
thf(iimplies_type,type,
iimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplies,definition,
( iimplies
= ( ^ [P: $i > $o,Q: $i > $o] : ( mbox_s4 @ ( mimplies @ P @ Q ) ) ) ) ).
%----Definition of iimplied: iimplied P Q = (iimplies Q P)
thf(iimplied_type,type,
iimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iimplied,definition,
( iimplied
= ( ^ [P: $i > $o,Q: $i > $o] : ( iimplies @ Q @ P ) ) ) ).
%----Definition of iequiv: iequiv P Q =
%---- (iand (iimplies P Q) (iimplies Q P))
thf(iequiv_type,type,
iequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(iequiv,definition,
( iequiv
= ( ^ [P: $i > $o,Q: $i > $o] : ( iand @ ( iimplies @ P @ Q ) @ ( iimplies @ Q @ P ) ) ) ) ).
%----Definition of ixor: ixor P Q = (mnot (iequiv P Q))
thf(ixor_type,type,
ixor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(ixor,definition,
( ixor
= ( ^ [P: $i > $o,Q: $i > $o] : ( mnot @ ( iequiv @ P @ Q ) ) ) ) ).
%----Definition of validity
thf(ivalid_type,type,
ivalid: ( $i > $o ) > $o ).
thf(ivalid,definition,
( ivalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of satisfiability
thf(isatisfiable_type,type,
isatisfiable: ( $i > $o ) > $o ).
thf(isatisfiable,definition,
( isatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of countersatisfiability
thf(icountersatisfiable_type,type,
icountersatisfiable: ( $i > $o ) > $o ).
thf(icountersatisfiable,definition,
( icountersatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] :
~ ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(iinvalid_type,type,
iinvalid: ( $i > $o ) > $o ).
thf(iinvalid,definition,
( iinvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL013^0.ax
%------------------------------------------------------------------------------
% File : LCL013^0 : TPTP v8.2.0. Bugfixed v5.0.0.
% Domain : Logic Calculi (Quantified multimodal logic)
% Axioms : Embedding of quantified multimodal logic in simple type theory
% Version : [Ben09] axioms.
% English :
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 63 ( 31 unt; 32 typ; 31 def)
% Number of atoms : 92 ( 36 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 123 ( 4 ~; 4 |; 8 &; 99 @)
% ( 0 <=>; 8 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 99 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 168 ( 168 >; 0 *; 0 +; 0 <<)
% Number of symbols : 33 ( 31 usr; 1 con; 0-3 aty)
% Number of variables : 84 ( 49 ^ 29 !; 6 ?; 84 :)
% SPC :
% Comments :
% Bugfixes : v5.0.0 - Fixed mpartially_functional_type
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,
mu: $tType ).
%----Equality
thf(meq_ind_type,type,
meq_ind: mu > mu > $i > $o ).
thf(meq_ind,definition,
( meq_ind
= ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) ) ).
thf(meq_prop_type,type,
meq_prop: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(meq_prop,definition,
( meq_prop
= ( ^ [X: $i > $o,Y: $i > $o,W: $i] :
( ( X @ W )
= ( Y @ W ) ) ) ) ).
%----Modal operators not, or, box, Pi
thf(mnot_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [Phi: $i > $o,W: $i] :
~ ( Phi @ W ) ) ) ).
thf(mor_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
| ( Psi @ W ) ) ) ) ).
thf(mand_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mor @ ( mnot @ Phi ) @ ( mnot @ Psi ) ) ) ) ) ).
thf(mimplies_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Phi ) @ Psi ) ) ) ).
thf(mimplied_type,type,
mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplied,definition,
( mimplied
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Psi ) @ Phi ) ) ) ).
thf(mequiv_type,type,
mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mequiv,definition,
( mequiv
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mand @ ( mimplies @ Phi @ Psi ) @ ( mimplies @ Psi @ Phi ) ) ) ) ).
thf(mxor_type,type,
mxor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mxor,definition,
( mxor
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mequiv @ Phi @ Psi ) ) ) ) ).
%----Universal quantification: individuals
thf(mforall_ind_type,type,
mforall_ind: ( mu > $i > $o ) > $i > $o ).
thf(mforall_ind,definition,
( mforall_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
! [X: mu] : ( Phi @ X @ W ) ) ) ).
thf(mforall_prop_type,type,
mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_prop,definition,
( mforall_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
! [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
thf(mexists_ind_type,type,
mexists_ind: ( mu > $i > $o ) > $i > $o ).
thf(mexists_ind,definition,
( mexists_ind
= ( ^ [Phi: mu > $i > $o] :
( mnot
@ ( mforall_ind
@ ^ [X: mu] : ( mnot @ ( Phi @ X ) ) ) ) ) ) ).
thf(mexists_prop_type,type,
mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_prop,definition,
( mexists_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o] :
( mnot
@ ( mforall_prop
@ ^ [P: $i > $o] : ( mnot @ ( Phi @ P ) ) ) ) ) ) ).
thf(mtrue_type,type,
mtrue: $i > $o ).
thf(mtrue,definition,
( mtrue
= ( ^ [W: $i] : $true ) ) ).
thf(mfalse_type,type,
mfalse: $i > $o ).
thf(mfalse,definition,
( mfalse
= ( mnot @ mtrue ) ) ).
thf(mbox_type,type,
mbox: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mbox,definition,
( mbox
= ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( R @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_type,type,
mdia: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mdia,definition,
( mdia
= ( ^ [R: $i > $i > $o,Phi: $i > $o] : ( mnot @ ( mbox @ R @ ( mnot @ Phi ) ) ) ) ) ).
%----Definition of properties of accessibility relations
thf(mreflexive_type,type,
mreflexive: ( $i > $i > $o ) > $o ).
thf(mreflexive,definition,
( mreflexive
= ( ^ [R: $i > $i > $o] :
! [S: $i] : ( R @ S @ S ) ) ) ).
thf(msymmetric_type,type,
msymmetric: ( $i > $i > $o ) > $o ).
thf(msymmetric,definition,
( msymmetric
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i] :
( ( R @ S @ T )
=> ( R @ T @ S ) ) ) ) ).
thf(mserial_type,type,
mserial: ( $i > $i > $o ) > $o ).
thf(mserial,definition,
( mserial
= ( ^ [R: $i > $i > $o] :
! [S: $i] :
? [T: $i] : ( R @ S @ T ) ) ) ).
thf(mtransitive_type,type,
mtransitive: ( $i > $i > $o ) > $o ).
thf(mtransitive,definition,
( mtransitive
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ T @ U ) )
=> ( R @ S @ U ) ) ) ) ).
thf(meuclidean_type,type,
meuclidean: ( $i > $i > $o ) > $o ).
thf(meuclidean,definition,
( meuclidean
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( R @ T @ U ) ) ) ) ).
thf(mpartially_functional_type,type,
mpartially_functional: ( $i > $i > $o ) > $o ).
thf(mpartially_functional,definition,
( mpartially_functional
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( T = U ) ) ) ) ).
thf(mfunctional_type,type,
mfunctional: ( $i > $i > $o ) > $o ).
thf(mfunctional,definition,
( mfunctional
= ( ^ [R: $i > $i > $o] :
! [S: $i] :
? [T: $i] :
( ( R @ S @ T )
& ! [U: $i] :
( ( R @ S @ U )
=> ( T = U ) ) ) ) ) ).
thf(mweakly_dense_type,type,
mweakly_dense: ( $i > $i > $o ) > $o ).
thf(mweakly_dense,definition,
( mweakly_dense
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( R @ S @ T )
=> ? [U: $i] :
( ( R @ S @ U )
& ( R @ U @ T ) ) ) ) ) ).
thf(mweakly_connected_type,type,
mweakly_connected: ( $i > $i > $o ) > $o ).
thf(mweakly_connected,definition,
( mweakly_connected
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( ( R @ T @ U )
| ( T = U )
| ( R @ U @ T ) ) ) ) ) ).
thf(mweakly_directed_type,type,
mweakly_directed: ( $i > $i > $o ) > $o ).
thf(mweakly_directed,definition,
( mweakly_directed
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ? [V: $i] :
( ( R @ T @ V )
& ( R @ U @ V ) ) ) ) ) ).
%----Definition of validity
thf(mvalid_type,type,
mvalid: ( $i > $o ) > $o ).
thf(mvalid,definition,
( mvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(minvalid_type,type,
minvalid: ( $i > $o ) > $o ).
thf(minvalid,definition,
( minvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%----Definition of satisfiability
thf(msatisfiable_type,type,
msatisfiable: ( $i > $o ) > $o ).
thf(msatisfiable,definition,
( msatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of countersatisfiability
thf(mcountersatisfiable_type,type,
mcountersatisfiable: ( $i > $o ) > $o ).
thf(mcountersatisfiable,definition,
( mcountersatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL013^1.ax
%------------------------------------------------------------------------------
% File : LCL013^1 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic K
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic K in simple type theory.
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 8 ( 2 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 8 ( 1 ~; 1 |; 0 &; 6 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 6 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 5 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_k
thf(rel_k_type,type,
rel_k: $i > $i > $o ).
%----We define mbox_k and mdia_k based on rel_k
thf(mbox_k_type,type,
mbox_k: ( $i > $o ) > $i > $o ).
thf(mbox_k,definition,
( mbox_k
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_k @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_k_type,type,
mdia_k: ( $i > $o ) > $i > $o ).
thf(mdia_k,definition,
( mdia_k
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_k @ ( mnot @ Phi ) ) ) ) ) ).
%------------------------------------------------------------------------------
./LCL013^2.ax
%------------------------------------------------------------------------------
% File : LCL013^2 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic D
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic D in simple type theory
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 10 ( 2 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 9 ( 1 ~; 1 |; 0 &; 7 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 1 avg; 7 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 6 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_d
thf(rel_d_type,type,
rel_d: $i > $i > $o ).
%----We define mbox_d and mdia_d based on rel_d
thf(mbox_d_type,type,
mbox_d: ( $i > $o ) > $i > $o ).
thf(mbox_d,definition,
( mbox_d
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_d @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_d_type,type,
mdia_d: ( $i > $o ) > $i > $o ).
thf(mdia_d,definition,
( mdia_d
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_d @ ( mnot @ Phi ) ) ) ) ) ).
%----We have now two options for stating the B conditions:
%----We can (i) directly formulate conditions for the accessibility relation
%----constant or we can (ii) state corresponding axioms. We here prefer (i)
thf(a1,axiom,
mserial @ rel_d ).
%------------------------------------------------------------------------------
./LCL013^3.ax
%------------------------------------------------------------------------------
% File : LCL013^3 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic M
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic M in simple type theory.
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 10 ( 2 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 9 ( 1 ~; 1 |; 0 &; 7 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 1 avg; 7 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 6 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_m
thf(rel_m_type,type,
rel_m: $i > $i > $o ).
%----We define mbox_m and mdia_m based on rel_m
thf(mbox_m_type,type,
mbox_m: ( $i > $o ) > $i > $o ).
thf(mbox_m,definition,
( mbox_m
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_m @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_m_type,type,
mdia_m: ( $i > $o ) > $i > $o ).
thf(mdia_m,definition,
( mdia_m
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_m @ ( mnot @ Phi ) ) ) ) ) ).
%----We have now two options for stating the B conditions:
%----We can (i) directly formulate conditions for the accessibility relation
%----constant or we can (ii) state corresponding axioms. We here prefer (i)
thf(a1,axiom,
mreflexive @ rel_m ).
%------------------------------------------------------------------------------
./LCL013^4.ax
%------------------------------------------------------------------------------
% File : LCL013^4 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic B
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic B in simple type theory.
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 7 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 12 ( 2 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 10 ( 1 ~; 1 |; 0 &; 8 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 2 avg; 8 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 7 ( 6 usr; 3 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_b
thf(rel_b_type,type,
rel_b: $i > $i > $o ).
%----We define mbox_b and mdia_b based on rel_b
thf(mbox_b_type,type,
mbox_b: ( $i > $o ) > $i > $o ).
thf(mbox_b,definition,
( mbox_b
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_b @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_b_type,type,
mdia_b: ( $i > $o ) > $i > $o ).
thf(mdia_b,definition,
( mdia_b
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_b @ ( mnot @ Phi ) ) ) ) ) ).
%----We have now two options for stating the B conditions:
%----We can (i) directly formulate conditions for the accessibility relation
%----constant or we can (ii) state corresponding axioms. We here prefer (i)
thf(a1,axiom,
mreflexive @ rel_b ).
thf(a2,axiom,
msymmetric @ rel_b ).
%------------------------------------------------------------------------------
./LCL013^5.ax
%------------------------------------------------------------------------------
% File : LCL013^5 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic S4
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic S4 in simple type theory.
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 7 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 12 ( 2 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 10 ( 1 ~; 1 |; 0 &; 8 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 2 avg; 8 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 7 ( 6 usr; 3 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0 or (LCL015^0 and LCL015^1)
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_s4
thf(rel_s4_type,type,
rel_s4: $i > $i > $o ).
%----We define mbox_s4 and mdia_s4 based on rel_s4
thf(mbox_s4_type,type,
mbox_s4: ( $i > $o ) > $i > $o ).
thf(mbox_s4,definition,
( mbox_s4
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_s4 @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_s4_type,type,
mdia_s4: ( $i > $o ) > $i > $o ).
thf(mdia_s4,definition,
( mdia_s4
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_s4 @ ( mnot @ Phi ) ) ) ) ) ).
%----We have now two options for stating the B conditions:
%----We can (i) directly formulate conditions for the accessibility relation
%----constant or we can (ii) state corresponding axioms. We here prefer (i)
thf(a1,axiom,
mreflexive @ rel_s4 ).
thf(a2,axiom,
mtransitive @ rel_s4 ).
%------------------------------------------------------------------------------
./LCL013^6.ax
%------------------------------------------------------------------------------
% File : LCL013^6 : TPTP v8.2.0. Released v4.0.0.
% Domain : Logic Calculi (Modal logic)
% Axioms : Modal logic S5
% Version : [Ben09] axioms.
% English : Embedding of monomodal logic S5 in simple type theory.
% Refs : [Ben09] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 2 unt; 3 typ; 2 def)
% Number of atoms : 14 ( 2 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 11 ( 1 ~; 1 |; 0 &; 9 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 2 avg; 9 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 10 ( 10 >; 0 *; 0 +; 0 <<)
% Number of symbols : 8 ( 7 usr; 4 con; 0-2 aty)
% Number of variables : 4 ( 3 ^ 1 !; 0 ?; 4 :)
% SPC :
% Comments : Requires LCL013^0
%------------------------------------------------------------------------------
%----We reserve an accessibility relation constant rel_s5
thf(rel_s5_type,type,
rel_s5: $i > $i > $o ).
%----We define mbox_s5 and mdia_s5 based on rel_s5
thf(mbox_s5_type,type,
mbox_s5: ( $i > $o ) > $i > $o ).
thf(mbox_s5,definition,
( mbox_s5
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( rel_s5 @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mdia_s5_type,type,
mdia_s5: ( $i > $o ) > $i > $o ).
thf(mdia_s5,definition,
( mdia_s5
= ( ^ [Phi: $i > $o] : ( mnot @ ( mbox_s5 @ ( mnot @ Phi ) ) ) ) ) ).
%----We have now two options for stating the B conditions:
%----We can (i) directly formulate conditions for the accessibility relation
%----constant or we can (ii) state corresponding axioms. We here prefer (i)
thf(a1,axiom,
mreflexive @ rel_s5 ).
thf(a2,axiom,
mtransitive @ rel_s5 ).
thf(a3,axiom,
msymmetric @ rel_s5 ).
%------------------------------------------------------------------------------
./LCL014^0.ax
%------------------------------------------------------------------------------
% File : LCL014^0 : TPTP v8.2.0. Released .0.
% Domain : Logical Calculi
% Axioms : Region Connection Calculus
% Version : [RCC92] axioms.
% English :
% Refs : [RCC92] Randell et al. (1992), A Spatial Logic Based on Region
% : [Ben10a] Benzmueller (2010), Email to Geoff Sutcliffe
% : [Ben10b] Benzmueller (2010), Simple Type Theory as a Framework
% Source : [Ben10a]
% Names : RCC.ax [Ben10a]
% Status : Satisfiable
% Syntax : Number of formulae : 22 ( 10 unt; 11 typ; 9 def)
% Number of atoms : 41 ( 9 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 64 ( 6 ~; 0 |; 10 &; 46 @)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 2 avg; 46 nst)
% Number of types : 2 ( 1 usr)
% Number of type conns : 20 ( 20 >; 0 *; 0 +; 0 <<)
% Number of symbols : 11 ( 10 usr; 0 con; 2-2 aty)
% Number of variables : 25 ( 18 ^ 4 !; 3 ?; 25 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
thf(reg_type,type,
reg: $tType ).
thf(c_type,type,
c: reg > reg > $o ).
thf(dc_type,type,
dc: reg > reg > $o ).
thf(p_type,type,
p: reg > reg > $o ).
thf(eq_type,type,
eq: reg > reg > $o ).
thf(o_type,type,
o: reg > reg > $o ).
thf(po_type,type,
po: reg > reg > $o ).
thf(ec_type,type,
ec: reg > reg > $o ).
thf(pp_type,type,
pp: reg > reg > $o ).
thf(tpp_type,type,
tpp: reg > reg > $o ).
thf(ntpp_type,type,
ntpp: reg > reg > $o ).
thf(c_reflexive,axiom,
! [X: reg] : ( c @ X @ X ) ).
thf(c_symmetric,axiom,
! [X: reg,Y: reg] :
( ( c @ X @ Y )
=> ( c @ Y @ X ) ) ).
thf(dc,definition,
( dc
= ( ^ [X: reg,Y: reg] :
~ ( c @ X @ Y ) ) ) ).
thf(p,definition,
( p
= ( ^ [X: reg,Y: reg] :
! [Z: reg] :
( ( c @ Z @ X )
=> ( c @ Z @ Y ) ) ) ) ).
thf(eq,definition,
( eq
= ( ^ [X: reg,Y: reg] :
( ( p @ X @ Y )
& ( p @ Y @ X ) ) ) ) ).
thf(o,definition,
( o
= ( ^ [X: reg,Y: reg] :
? [Z: reg] :
( ( p @ Z @ X )
& ( p @ Z @ Y ) ) ) ) ).
thf(po,definition,
( po
= ( ^ [X: reg,Y: reg] :
( ( o @ X @ Y )
& ~ ( p @ X @ Y )
& ~ ( p @ Y @ X ) ) ) ) ).
thf(ec,definition,
( ec
= ( ^ [X: reg,Y: reg] :
( ( c @ X @ Y )
& ~ ( o @ X @ Y ) ) ) ) ).
thf(pp,definition,
( pp
= ( ^ [X: reg,Y: reg] :
( ( p @ X @ Y )
& ~ ( p @ Y @ X ) ) ) ) ).
thf(tpp,definition,
( tpp
= ( ^ [X: reg,Y: reg] :
( ( pp @ X @ Y )
& ? [Z: reg] :
( ( ec @ Z @ X )
& ( ec @ Z @ Y ) ) ) ) ) ).
thf(ntpp,definition,
( ntpp
= ( ^ [X: reg,Y: reg] :
( ( pp @ X @ Y )
& ~ ? [Z: reg] :
( ( ec @ Z @ X )
& ( ec @ Z @ Y ) ) ) ) ) ).
%------------------------------------------------------------------------------
./LCL015^0.ax
%------------------------------------------------------------------------------
% File : LCL015^0 : TPTP v8.2.0. Released v5.5.0.
% Domain : Logic Calculi (Quantified multimodal logic, cumulative domains)
% Axioms : Embedding of quantified multimodal logic in simple type theory
% Version : [Ben12] axioms.
% English :
% Refs : [Ben12] Benzmueller (2012), Email to Geoff Sutcliffe
% Source : [Ben12]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 64 ( 31 unt; 33 typ; 30 def)
% Number of atoms : 91 ( 34 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 128 ( 4 ~; 4 |; 8 &; 103 @)
% ( 0 <=>; 9 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 1 avg; 103 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 170 ( 170 >; 0 *; 0 +; 0 <<)
% Number of symbols : 34 ( 32 usr; 1 con; 0-3 aty)
% Number of variables : 83 ( 46 ^ 30 !; 7 ?; 83 :)
% SPC : THF_SAT_EQU
% Comments : LCL015^1 and this are essentially LCL013^0.ax with the following
% modifications to support cumulative domains:
% - addition of a predicate exists_in_world
% - use of this predicate in a modified definition mforall_ind
% - use of this predicate in an added axiom for cumulative domains
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,
mu: $tType ).
%----Equality
thf(qmltpeq_type,type,
qmltpeq: mu > mu > $i > $o ).
% originale Definition
%thf(qmltpeq,definition,
% ( qmltpeq
% = ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) )).
% erweiterte Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
% = ( ^ [X: mu,Y: mu,W: $i] : (![P: mu > $i > $o]: ( (P @ X @ W) <=> (P @ Y @ W) ) ) ) )).
% Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
% = ( ^ [X: mu,Y: mu,W: $i] : (! [P: mu > $o]: ( (P @ X) <=> (P @ Y) ) ) ) )).
thf(meq_prop_type,type,
meq_prop: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(meq_prop,definition,
( meq_prop
= ( ^ [X: $i > $o,Y: $i > $o,W: $i] :
( ( X @ W )
= ( Y @ W ) ) ) ) ).
%----Modal operators not, or, box, Pi
thf(mnot_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [Phi: $i > $o,W: $i] :
~ ( Phi @ W ) ) ) ).
thf(mor_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
| ( Psi @ W ) ) ) ) ).
thf(mbox_type,type,
mbox: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mbox,definition,
( mbox
= ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( R @ W @ V )
| ( Phi @ V ) ) ) ) ).
thf(mforall_prop_type,type,
mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_prop,definition,
( mforall_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
! [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
%----Further modal operators
thf(mtrue_type,type,
mtrue: $i > $o ).
thf(mtrue,definition,
( mtrue
= ( ^ [W: $i] : $true ) ) ).
thf(mfalse_type,type,
mfalse: $i > $o ).
thf(mfalse,definition,
( mfalse
= ( mnot @ mtrue ) ) ).
thf(mand_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mor @ ( mnot @ Phi ) @ ( mnot @ Psi ) ) ) ) ) ).
thf(mimplies_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Phi ) @ Psi ) ) ) ).
thf(mimplied_type,type,
mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplied,definition,
( mimplied
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Psi ) @ Phi ) ) ) ).
thf(mequiv_type,type,
mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mequiv,definition,
( mequiv
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mand @ ( mimplies @ Phi @ Psi ) @ ( mimplies @ Psi @ Phi ) ) ) ) ).
thf(mxor_type,type,
mxor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mxor,definition,
( mxor
= ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mequiv @ Phi @ Psi ) ) ) ) ).
thf(mdia_type,type,
mdia: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mdia,definition,
( mdia
= ( ^ [R: $i > $i > $o,Phi: $i > $o] : ( mnot @ ( mbox @ R @ ( mnot @ Phi ) ) ) ) ) ).
%--- (new for cumulative)
%---Declaration of existence predicate for simulating cumulative domain
thf(exists_in_world_type,type,
exists_in_world: mu > $i > $o ).
%----The domains are non-empty
thf(nonempty_ax,axiom,
! [V: $i] :
? [X: mu] : ( exists_in_world @ X @ V ) ).
thf(mforall_ind_type,type,
mforall_ind: ( mu > $i > $o ) > $i > $o ).
%--- (new for cumulative)
thf(mforall_ind,definition,
( mforall_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
! [X: mu] :
( ( exists_in_world @ X @ W )
=> ( Phi @ X @ W ) ) ) ) ).
%thf(mforall_ind,definition,
% ( mforall_ind
% = ( ^ [Phi: mu > $i > $o,W: $i] :
% ! [X: mu] :
% ( Phi @ X @ W ) ) )).
thf(mexists_ind_type,type,
mexists_ind: ( mu > $i > $o ) > $i > $o ).
thf(mexists_ind,definition,
( mexists_ind
= ( ^ [Phi: mu > $i > $o] :
( mnot
@ ( mforall_ind
@ ^ [X: mu] : ( mnot @ ( Phi @ X ) ) ) ) ) ) ).
thf(mexists_prop_type,type,
mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_prop,definition,
( mexists_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o] :
( mnot
@ ( mforall_prop
@ ^ [P: $i > $o] : ( mnot @ ( Phi @ P ) ) ) ) ) ) ).
%----Definition of properties of accessibility relations
thf(mreflexive_type,type,
mreflexive: ( $i > $i > $o ) > $o ).
thf(mreflexive,definition,
( mreflexive
= ( ^ [R: $i > $i > $o] :
! [S: $i] : ( R @ S @ S ) ) ) ).
thf(msymmetric_type,type,
msymmetric: ( $i > $i > $o ) > $o ).
thf(msymmetric,definition,
( msymmetric
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i] :
( ( R @ S @ T )
=> ( R @ T @ S ) ) ) ) ).
thf(mserial_type,type,
mserial: ( $i > $i > $o ) > $o ).
thf(mserial,definition,
( mserial
= ( ^ [R: $i > $i > $o] :
! [S: $i] :
? [T: $i] : ( R @ S @ T ) ) ) ).
thf(mtransitive_type,type,
mtransitive: ( $i > $i > $o ) > $o ).
thf(mtransitive,definition,
( mtransitive
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ T @ U ) )
=> ( R @ S @ U ) ) ) ) ).
thf(meuclidean_type,type,
meuclidean: ( $i > $i > $o ) > $o ).
thf(meuclidean,definition,
( meuclidean
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( R @ T @ U ) ) ) ) ).
thf(mpartially_functional_type,type,
mpartially_functional: ( $i > $i > $o ) > $o ).
thf(mpartially_functional,definition,
( mpartially_functional
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( T = U ) ) ) ) ).
thf(mfunctional_type,type,
mfunctional: ( $i > $i > $o ) > $o ).
thf(mfunctional,definition,
( mfunctional
= ( ^ [R: $i > $i > $o] :
! [S: $i] :
? [T: $i] :
( ( R @ S @ T )
& ! [U: $i] :
( ( R @ S @ U )
=> ( T = U ) ) ) ) ) ).
thf(mweakly_dense_type,type,
mweakly_dense: ( $i > $i > $o ) > $o ).
thf(mweakly_dense,definition,
( mweakly_dense
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( R @ S @ T )
=> ? [U: $i] :
( ( R @ S @ U )
& ( R @ U @ T ) ) ) ) ) ).
thf(mweakly_connected_type,type,
mweakly_connected: ( $i > $i > $o ) > $o ).
thf(mweakly_connected,definition,
( mweakly_connected
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ( ( R @ T @ U )
| ( T = U )
| ( R @ U @ T ) ) ) ) ) ).
thf(mweakly_directed_type,type,
mweakly_directed: ( $i > $i > $o ) > $o ).
thf(mweakly_directed,definition,
( mweakly_directed
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i,U: $i] :
( ( ( R @ S @ T )
& ( R @ S @ U ) )
=> ? [V: $i] :
( ( R @ T @ V )
& ( R @ U @ V ) ) ) ) ) ).
%----Definition of validity
thf(mvalid_type,type,
mvalid: ( $i > $o ) > $o ).
thf(mvalid,definition,
( mvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of satisfiability
thf(msatisfiable_type,type,
msatisfiable: ( $i > $o ) > $o ).
thf(msatisfiable,definition,
( msatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of countersatisfiability
thf(mcountersatisfiable_type,type,
mcountersatisfiable: ( $i > $o ) > $o ).
thf(mcountersatisfiable,definition,
( mcountersatisfiable
= ( ^ [Phi: $i > $o] :
? [W: $i] :
~ ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(minvalid_type,type,
minvalid: ( $i > $o ) > $o ).
thf(minvalid,definition,
( minvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL015^1.ax
%------------------------------------------------------------------------------
% File : LCL015^1 : TPTP v8.2.0. Released v5.5.0.
% Domain : Logic Calculi (Quantified multimodal logic, cumulative domains)
% Axioms : Cumulative domain specific axioms
% Version : [Ben12] axioms.
% English :
% Refs : [Ben12] Benzmueller (2012), Email to Geoff Sutcliffe
% Source : [Ben12]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 1 ( 0 unt; 0 typ; 0 def)
% Number of atoms : 3 ( 0 equ; 0 cnn)
% Maximal formula atoms : 3 ( 3 avg)
% Number of connectives : 8 ( 0 ~; 0 |; 1 &; 6 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 8 avg; 6 nst)
% Number of types : 1 ( 0 usr)
% Number of type conns : 0 ( 0 >; 0 *; 0 +; 0 <<)
% Number of symbols : 3 ( 3 usr; 3 con; 0-0 aty)
% Number of variables : 3 ( 0 ^ 3 !; 0 ?; 3 :)
% SPC : THF_SAT_EQU
% Comments : LCL015^0 and this are essentially LCL013^0.ax with the following
% modifications to support cumulative domains:
% - addition of a predicate exists_in_world
% - use of this predicate in a modified definition mforall_ind
% - use of this predicate in an added axiom for cumulative domains
% : Requires LCL015^0 LCL013^5
%------------------------------------------------------------------------------
thf(cumulative_ax,axiom,
! [X: mu,V: $i,W: $i] :
( ( ( exists_in_world @ X @ V )
& ( rel_s4 @ V @ W ) )
=> ( exists_in_world @ X @ W ) ) ).
%------------------------------------------------------------------------------
./LCL016^0.ax
%------------------------------------------------------------------------------
% File : LCL016^0 : TPTP v8.2.0. Released .0.
% Domain : Logic Calculi (Second Order Modal Logic)
% Axioms : Embedding of second order modal logic in simple type theory
% Version : [Ben13] axioms.
% English : An embedding of second order monomodal logic into simple type
% theory. The concrete logic is base logic K.
% Refs : [Ben13] Benzmueller (2013), Email to Geoff Sutcliffe
% : [BP13] Benzmueller & Paulson (2013), Quantified Multimodal Lo
% Source : [Ben13]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 46 ( 22 unt; 24 typ; 22 def)
% Number of atoms : 51 ( 23 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 52 ( 5 ~; 3 |; 4 &; 37 @)
% ( 1 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 37 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 137 ( 137 >; 0 *; 0 +; 0 <<)
% Number of symbols : 26 ( 23 usr; 2 con; 0-3 aty)
% Number of variables : 55 ( 45 ^ 6 !; 4 ?; 55 :)
% SPC : TH0_SAT_EQU
% Comments : In order to obtain other logics such B or S5 one can further
% restrict the accessibility relation. E.g. for B one can simply
% add the axiom of symmetry for rel. For S5 one would additionally
% postulate reflexivity and transitivity of rel.
% : Quantifiers are provided for individuals, sets or individuals
% (properties), and propositions. We here assume and implement
% constant domain semantics. Respective quantifiers for varying
% domains and cumulative domains can easily be added. An explicit
% "existInWorlds" predicate can be introduced for this, and the
% quantifiers would then be relativized using this predicate. The
% generic operators mbox_generic and mdia_generic can be applied to
% a particular accessibility relation rel to turn these generic
% modal operators turn into a particular mbox and mdia operator for
% rel. Hence, this axiomatization supports multimodal logics, and
% for stating bridge rules there are different options: conditions
% on the accessibility relations can be stated or usual bridge
% rules can be stated unsing propositional quantification.
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,
mu: $tType ).
%----Equality on individuals
thf(meq_ind_type,type,
meq_ind: mu > mu > $i > $o ).
thf(meq_ind,definition,
( meq_ind
= ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) ) ).
%----Modal operators mtrue, mfalse, mnot, mor, mand, mimplies, mequiv, ...
thf(mtrue_type,type,
mtrue: $i > $o ).
thf(mtrue,definition,
( mtrue
= ( ^ [W: $i] : $true ) ) ).
thf(mfalse_type,type,
mfalse: $i > $o ).
thf(mfalse,definition,
( mfalse
= ( ^ [W: $i] : $false ) ) ).
thf(mnot_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [Phi: $i > $o,W: $i] :
~ ( Phi @ W ) ) ) ).
thf(mor_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
| ( Psi @ W ) ) ) ) ).
thf(mand_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
& ( Psi @ W ) ) ) ) ).
thf(mimplies_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
=> ( Psi @ W ) ) ) ) ).
thf(mimplied_type,type,
mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplied,definition,
( mimplied
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Psi @ W )
=> ( Phi @ W ) ) ) ) ).
thf(mequiv_type,type,
mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mequiv,definition,
( mequiv
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
<=> ( Psi @ W ) ) ) ) ).
thf(mxor_type,type,
mxor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mxor,definition,
( mxor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( ( Phi @ W )
& ~ ( Psi @ W ) )
| ( ~ ( Phi @ W )
& ( Psi @ W ) ) ) ) ) ).
%----Universal quantification: individuals
thf(mforall_ind_type,type,
mforall_ind: ( mu > $i > $o ) > $i > $o ).
thf(mforall_ind,definition,
( mforall_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
! [X: mu] : ( Phi @ X @ W ) ) ) ).
%----Universal quantification: sets of individuals (properties)
thf(mforall_indset_type,type,
mforall_indset: ( ( mu > $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_indset,definition,
( mforall_indset
= ( ^ [Phi: ( mu > $i > $o ) > $i > $o,W: $i] :
! [X: mu > $i > $o] : ( Phi @ X @ W ) ) ) ).
%----Universal quantification: propositions
thf(mforall_prop_type,type,
mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_prop,definition,
( mforall_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
! [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
%----Existential quantification: individuals
thf(mexists_ind_type,type,
mexists_ind: ( mu > $i > $o ) > $i > $o ).
thf(mexists_ind,definition,
( mexists_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
? [X: mu] : ( Phi @ X @ W ) ) ) ).
%----Existential quantification: sets of individuals (properties)
thf(mexists_indset_type,type,
mexists_indset: ( ( mu > $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_indset,definition,
( mexists_indset
= ( ^ [Phi: ( mu > $i > $o ) > $i > $o,W: $i] :
? [X: mu > $i > $o] : ( Phi @ X @ W ) ) ) ).
%----Existential quantification: propositions
thf(mexists_prop_type,type,
mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_prop,definition,
( mexists_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
? [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
%----Generic mbox operator
thf(mbox_generic_type,type,
mbox_generic: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mbox_generic,definition,
( mbox_generic
= ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
! [V: $i] :
( ~ ( R @ W @ V )
| ( Phi @ V ) ) ) ) ).
%----Generic mdia operator
thf(mdia_generic_type,type,
mdia_generic: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mdia_generic,definition,
( mdia_generic
= ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
? [V: $i] :
( ( R @ W @ V )
& ( Phi @ V ) ) ) ) ).
%----The accessibility relation rel
thf(rel_type,type,
rel: $i > $i > $o ).
%----The mbox operator instantiated for rel (further mbox operators
%----for other accessibility relations can be introduced analogously)
thf(mbox_type,type,
mbox: ( $i > $o ) > $i > $o ).
thf(mbox,definition,
( mbox
= ( mbox_generic @ rel ) ) ).
%----The mdia operator instantiated for rel (further mdia operators
%----for other accessibility relations can be introduced analogously)
thf(mdia_type,type,
mdia: ( $i > $o ) > $i > $o ).
thf(mdia,definition,
( mdia
= ( mdia_generic @ rel ) ) ).
%----The notion of validity
thf(mvalid_type,type,
mvalid: ( $i > $o ) > $o ).
thf(mvalid,definition,
( mvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(minvalid_type,type,
minvalid: ( $i > $o ) > $o ).
thf(minvalid,definition,
( minvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL016^1.ax
%------------------------------------------------------------------------------
% File : LCL016^1 : TPTP v8.2.0. Released .0.
% Domain : Logic Calculi (Second Order Modal Logic)
% Axioms : Embedding of second order modal logic in simple type theory
% Version : [Ben13] axioms.
% English : Extends K to KB by adding symmetric of rel.
% Refs : [Ben13] Benzmueller (2009), Email to Geoff Sutcliffe
% : [BP13] Benzmueller & Paulson (2013), Quantified Multimodal Lo
% Source : [Ben13]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 1 unt; 1 typ; 1 def)
% Number of atoms : 4 ( 1 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 6 ( 0 ~; 0 |; 0 &; 5 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 2 ( 2 avg; 5 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 5 ( 5 >; 0 *; 0 +; 0 <<)
% Number of symbols : 3 ( 2 usr; 1 con; 0-2 aty)
% Number of variables : 3 ( 1 ^ 2 !; 0 ?; 3 :)
% SPC : TH0_SAT_EQU
% Comments : Requires LCL016^0.ax.
%------------------------------------------------------------------------------
%----Definition of properties of accessibility relations
thf(msymmetric_type,type,
msymmetric: ( $i > $i > $o ) > $o ).
thf(msymmetric,definition,
( msymmetric
= ( ^ [R: $i > $i > $o] :
! [S: $i,T: $i] :
( ( R @ S @ T )
=> ( R @ T @ S ) ) ) ) ).
thf(sym,axiom,
msymmetric @ rel ).
%------------------------------------------------------------------------------
./LCL017^0.ax
%------------------------------------------------------------------------------
% File : LCL017^0 : TPTP v8.2.0. Released .0.
% Domain : Logic Calculi (Second Order Modal Logic)
% Axioms : Embedding of second order modal logic S5 with universal access
% Version : [Ben16] axioms.
% English : Embedding of second order modal logic S5 (with a universal
% accessibility) relation in simple type theory. In this case, the
% guarding accessibility constraints in the definition of box and
% diamond can be dropped.
% Refs : [Ben16] Benzmueller (2016), Email to Geoff Sutcliffe
% Source : [Ben16]
% Names : QML_S5U.ax [Ben16]
% Status : Satisfiable
% Syntax : Number of formulae : 41 ( 20 unt; 21 typ; 20 def)
% Number of atoms : 43 ( 21 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 43 ( 4 ~; 2 |; 3 &; 31 @)
% ( 1 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 31 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 119 ( 119 >; 0 *; 0 +; 0 <<)
% Number of symbols : 23 ( 20 usr; 2 con; 0-3 aty)
% Number of variables : 53 ( 43 ^ 6 !; 4 ?; 53 :)
% SPC : TH0_SAT_EQU
% Comments :
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,
mu: $tType ).
%----Equality on individuals
thf(meq_ind_type,type,
meq_ind: mu > mu > $i > $o ).
thf(meq_ind,definition,
( meq_ind
= ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) ) ).
%----Modal operators mtrue, mfalse, mnot, mor, mand, mimplies, mequiv, ...
thf(mtrue_type,type,
mtrue: $i > $o ).
thf(mtrue,definition,
( mtrue
= ( ^ [W: $i] : $true ) ) ).
thf(mfalse_type,type,
mfalse: $i > $o ).
thf(mfalse,definition,
( mfalse
= ( ^ [W: $i] : $false ) ) ).
thf(mnot_type,type,
mnot: ( $i > $o ) > $i > $o ).
thf(mnot,definition,
( mnot
= ( ^ [Phi: $i > $o,W: $i] :
~ ( Phi @ W ) ) ) ).
thf(mor_type,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mor,definition,
( mor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
| ( Psi @ W ) ) ) ) ).
thf(mand_type,type,
mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mand,definition,
( mand
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
& ( Psi @ W ) ) ) ) ).
thf(mimplies_type,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplies,definition,
( mimplies
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
=> ( Psi @ W ) ) ) ) ).
thf(mimplied_type,type,
mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mimplied,definition,
( mimplied
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Psi @ W )
=> ( Phi @ W ) ) ) ) ).
thf(mequiv_type,type,
mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mequiv,definition,
( mequiv
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( Phi @ W )
<=> ( Psi @ W ) ) ) ) ).
thf(mxor_type,type,
mxor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(mxor,definition,
( mxor
= ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
( ( ( Phi @ W )
& ~ ( Psi @ W ) )
| ( ~ ( Phi @ W )
& ( Psi @ W ) ) ) ) ) ).
%----Universal quantification: individuals
thf(mforall_ind_type,type,
mforall_ind: ( mu > $i > $o ) > $i > $o ).
thf(mforall_ind,definition,
( mforall_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
! [X: mu] : ( Phi @ X @ W ) ) ) ).
%----Universal quantification: sets of individuals (properties)
thf(mforall_indset_type,type,
mforall_indset: ( ( mu > $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_indset,definition,
( mforall_indset
= ( ^ [Phi: ( mu > $i > $o ) > $i > $o,W: $i] :
! [X: mu > $i > $o] : ( Phi @ X @ W ) ) ) ).
%----Universal quantification: propositions
thf(mforall_prop_type,type,
mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mforall_prop,definition,
( mforall_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
! [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
%----Existential quantification: individuals
thf(mexists_ind_type,type,
mexists_ind: ( mu > $i > $o ) > $i > $o ).
thf(mexists_ind,definition,
( mexists_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
? [X: mu] : ( Phi @ X @ W ) ) ) ).
%----Existential quantification: sets of individuals (properties)
thf(mexists_indset_type,type,
mexists_indset: ( ( mu > $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_indset,definition,
( mexists_indset
= ( ^ [Phi: ( mu > $i > $o ) > $i > $o,W: $i] :
? [X: mu > $i > $o] : ( Phi @ X @ W ) ) ) ).
%----Existential quantification: propositions
thf(mexists_prop_type,type,
mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).
thf(mexists_prop,definition,
( mexists_prop
= ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
? [P: $i > $o] : ( Phi @ P @ W ) ) ) ).
%----Box operator (exploting universal accessibility)
thf(mbox_type,type,
mbox: ( $i > $o ) > $i > $o ).
thf(mbox,definition,
( mbox
= ( ^ [Phi: $i > $o,W: $i] :
! [V: $i] : ( Phi @ V ) ) ) ).
%----Diamond operator
thf(mdia_type,type,
mdia: ( $i > $o ) > $i > $o ).
thf(mdia,definition,
( mdia
= ( ^ [Phi: $i > $o,W: $i] :
? [V: $i] : ( Phi @ V ) ) ) ).
%----The notion of validity
thf(mvalid_type,type,
mvalid: ( $i > $o ) > $o ).
thf(mvalid,definition,
( mvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] : ( Phi @ W ) ) ) ).
%----Definition of invalidity
thf(minvalid_type,type,
minvalid: ( $i > $o ) > $o ).
thf(minvalid,definition,
( minvalid
= ( ^ [Phi: $i > $o] :
! [W: $i] :
~ ( Phi @ W ) ) ) ).
%------------------------------------------------------------------------------
./LCL017^1.ax
%------------------------------------------------------------------------------
% File : LCL017^1 : TPTP v8.2.0. Released v7.5.0.
% Domain : Logic Calculi (Modal Logic)
% Axioms : Variable Domain Quantifiers for Modal Logic
% Version : [Gus20] axioms.
% English :
% Refs : [Gus20] Gustafsson (2020), Email to Geoff Sutcliffe
% Source : [Gus20]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 3 unt; 3 typ; 2 def)
% Number of atoms : 9 ( 2 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 11 ( 0 ~; 0 |; 0 &; 10 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 5 ( 2 avg; 10 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 14 ( 14 >; 0 *; 0 +; 0 <<)
% Number of symbols : 6 ( 5 usr; 2 con; 0-2 aty)
% Number of variables : 7 ( 4 ^ 2 !; 1 ?; 7 :)
% SPC : TH0_SAT_EQU_NAR
% Comments : Combine with LCL016^0 for Quantified Modal Logic K wth variable
% domain.
% : Combine with LCL016^0 and LCL016^1 for Quantified Modal Logic KB
% with variable domain.
% : Combine with LCL017^0 for Quantified Modal Logic S5 with variable
% domain.
%------------------------------------------------------------------------------
thf(eiw_ind,type,
eiw_ind: $i > mu > $o ).
thf(nonempty_ind,axiom,
! [V: $i] :
? [X: mu] : ( eiw_ind @ V @ X ) ).
thf(mforall_eiw_ind_type,type,
mforall_eiw_ind: ( mu > $i > $o ) > $i > $o ).
thf(mforall_eiw_ind,definition,
( mforall_eiw_ind
= ( ^ [Phi: mu > $i > $o,W: $i] :
! [X: mu] :
( ( eiw_ind @ W @ X )
=> ( Phi @ X @ W ) ) ) ) ).
thf(mexists_eiw_ind_type,type,
mexists_eiw_ind: ( mu > $i > $o ) > $i > $o ).
thf(mexists_eiw_ind,definition,
( mexists_eiw_ind
= ( ^ [Phi: mu > $i > $o] :
( mnot
@ ( mforall_eiw_ind
@ ^ [X: mu] : ( mnot @ ( Phi @ X ) ) ) ) ) ) ).
%------------------------------------------------------------------------------
./LDA001-0.ax
%--------------------------------------------------------------------------
% File : LDA001-0 : TPTP v8.2.0. Bugfixed v2.6.0.
% Domain : LD-Algebras (Embedding algebras)
% Axioms : Embedding algebra
% Version : [Jec93] axioms : Incomplete.
% English : LD-algebras are related to large cardinals. Under a very
% strong large cardinal assumption, the free-monogenic
% LD-algebra can be represented by an algebra of elementary
% embeddings. Theorems about this algebra can be proved from
% a small number of properties, suggesting the definition
% of an embedding algebra.
% Refs : [Jec93] Jech (1993), LD-Algebras
% : [Jec02] Jech (2002), Email to Geoff Sutcliffe
% Source : [Jec93]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 9 ( 4 unt; 2 nHn; 3 RR)
% Number of literals : 16 ( 5 equ; 5 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 21 ( 0 sgn)
% SPC :
% Comments : [Jec93] says, "Even though axioms for embedding algebras
% include additional properties to those listed below, many
% results can be proved from these axioms."
% Bugfixes : v2.6.0 - Fixed axioms; they were unsatisfiable [Jec02]
%--------------------------------------------------------------------------
%----A1 x(yz)=(xy)(xz)
cnf(a1,axiom,
f(X,f(Y,Z)) = f(f(X,Y),f(X,Z)) ).
%----A1a a(x,a(y,z)) = a(x*y,a(x,z))
cnf(a1a,axiom,
a(X,a(Y,Z)) = a(f(X,Y),a(X,Z)) ).
%----A2 cr(u*v) = a(u,cr(v))
cnf(a2,axiom,
critical_point(f(U,V)) = a(U,critical_point(V)) ).
%----B1 -(x<x)
cnf(b1,axiom,
~ less(X,X) ).
%----B2 linear
cnf(b2,axiom,
( less(X,Y)
| less(Y,X)
| X = Y ) ).
%----B3 transitive
cnf(b3,axiom,
( ~ less(X,Y)
| ~ less(Y,Z)
| less(X,Z) ) ).
%----B4 if x<y then ux<uy
cnf(b4,axiom,
( ~ less(X,Y)
| less(a(U,X),a(U,Y)) ) ).
%----C2 if x<crit(u) then ux=x
cnf(c2,axiom,
( ~ less(X,critical_point(U))
| a(U,X) = X ) ).
%----C3 x<crit(u) or x<ux
cnf(c3,axiom,
( less(X,critical_point(U))
| less(X,a(U,X)) ) ).
%--------------------------------------------------------------------------
./MAT001^0.ax
Very long 20534
./MED001+0.ax
%------------------------------------------------------------------------------
% File : MED001+0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Medicine
% Axioms : Physiology Diabetes Mellitus type 2
% Version : [HLB05] axioms : Especial.
% English : Physiological mechanisms of diabetes mellitus type 2
% Refs : [HLB05] Hommersom et al. (2005), Automated Theorem Proving for
% : [Hom06] Hommersom (2006), Email to G. Sutcliffe
% Source : [Hom06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 1 unt; 0 def)
% Number of atoms : 76 ( 0 equ)
% Maximal formula atoms : 11 ( 4 avg)
% Number of connectives : 95 ( 37 ~; 12 |; 15 &)
% ( 0 <=>; 31 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 6 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 15 ( 15 usr; 0 prp; 1-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 42 ( 42 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(irreflexivity_gt,axiom,
! [X] : ~ gt(X,X) ).
fof(transitivity_gt,axiom,
! [X,Y,Z] :
( ( gt(X,Y)
& gt(Y,Z) )
=> gt(X,Z) ) ).
fof(xorcapacity1,axiom,
! [X0] :
( bcapacityne(X0)
| bcapacityex(X0)
| bcapacitysn(X0) ) ).
fof(xorcapacity2,axiom,
! [X0] :
( ~ bcapacityne(X0)
| ~ bcapacityex(X0) ) ).
fof(xorcapacity3,axiom,
! [X0] :
( ~ bcapacityne(X0)
| ~ bcapacitysn(X0) ) ).
fof(xorcapacity4,axiom,
! [X0] :
( ~ bcapacityex(X0)
| ~ bcapacitysn(X0) ) ).
fof(xorcondition1,axiom,
! [X0] :
( conditionhyper(X0)
| conditionhypo(X0)
| conditionnormo(X0) ) ).
fof(xorcondition2,axiom,
! [X0] :
( ~ conditionhyper(X0)
| ~ conditionhypo(X0) ) ).
fof(xorcondition3,axiom,
! [X0] :
( ~ conditionhyper(X0)
| ~ conditionnormo(X0) ) ).
fof(xorcondition4,axiom,
! [X0] :
( ~ conditionhypo(X0)
| ~ conditionnormo(X0) ) ).
fof(insulin_effect,axiom,
! [X0] :
( ! [X1] :
( ~ gt(X0,X1)
=> drugi(X1) )
=> ! [X1] :
( ~ gt(X0,X1)
=> ( uptakelg(X1)
& uptakepg(X1) ) ) ) ).
fof(liver_glucose,axiom,
! [X0,X1] :
( ~ gt(X0,X1)
=> ( uptakelg(X1)
=> ~ releaselg(X1) ) ) ).
fof(sulfonylurea_effect,axiom,
! [X0] :
( ( ! [X1] :
( ~ gt(X0,X1)
=> drugsu(X1) )
& ~ bcapacityex(X0) )
=> ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) ) ) ).
fof(biguanide_effect,axiom,
! [X0] :
( ! [X1] :
( ~ gt(X0,X1)
=> drugbg(X1) )
=> ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) ) ) ).
fof(sn_cure_1,axiom,
! [X0] :
( ( ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) )
& bcapacitysn(X0)
& qilt27(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
=> ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) ) ).
fof(sn_cure_2,axiom,
! [X0] :
( ( ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) )
& bcapacitysn(X0)
& ~ qilt27(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
=> ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) ) ).
fof(ne_cure,axiom,
! [X0] :
( ( ( ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) )
| ! [X1] :
( ~ gt(X0,X1)
=> uptakepg(X1) ) )
& bcapacityne(X0)
& ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) )
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
=> ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) ) ).
fof(ex_cure,axiom,
! [X0] :
( ( ! [X1] :
( ~ gt(X0,X1)
=> uptakelg(X1) )
& ! [X1] :
( ~ gt(X0,X1)
=> uptakepg(X1) )
& bcapacityex(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
=> ! [X1] :
( ~ gt(X0,X1)
=> ( conditionnormo(X1)
| conditionhypo(X1) ) ) ) ).
%------------------------------------------------------------------------------
./MED001+1.ax
%------------------------------------------------------------------------------
% File : MED001+1 : TPTP v8.2.0. Released v3.2.0.
% Domain : Medicine
% Axioms : "Completed" Physiology Diabetes Mellitus type 2
% Version : [HLB05] axioms : Especial.
% English : Completed theory of diabetes mellitus type 2 mechanisms
% Refs : [HLB05] Hommersom et al. (2005), Automated Theorem Proving for
% : [Hom06] Hommersom (2006), Email to G. Sutcliffe
% Source : [Hom06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 22 ( 0 unt; 0 def)
% Number of atoms : 114 ( 0 equ)
% Maximal formula atoms : 30 ( 5 avg)
% Number of connectives : 137 ( 45 ~; 21 |; 30 &)
% ( 0 <=>; 41 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 6 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 19 ( 19 usr; 0 prp; 1-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 51 ( 48 !; 3 ?)
% SPC :
% Comments : Requires MED001+0.ax
%------------------------------------------------------------------------------
fof(xorstep1,axiom,
! [X0] :
( s0(X0)
| s1(X0)
| s2(X0)
| s3(X0) ) ).
fof(xorstep2,axiom,
! [X0] :
( ~ s0(X0)
| ~ s1(X0) ) ).
fof(xorstep3,axiom,
! [X0] :
( ~ s0(X0)
| ~ s2(X0) ) ).
fof(xorstep4,axiom,
! [X0] :
( ~ s0(X0)
| ~ s3(X0) ) ).
fof(xorstep5,axiom,
! [X0] :
( ~ s1(X0)
| ~ s2(X0) ) ).
fof(xorstep6,axiom,
! [X0] :
( ~ s1(X0)
| ~ s3(X0) ) ).
fof(xorstep7,axiom,
! [X0] :
( ~ s2(X0)
| ~ s3(X0) ) ).
fof(normo,axiom,
! [X0] :
( ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) )
=> ( ( ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) )
& bcapacitysn(X0)
& qilt27(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
| ( ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) )
& bcapacitysn(X0)
& ~ qilt27(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
| ( ( ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) )
| ! [X1] :
( ~ gt(X0,X1)
=> uptakepg(X1) ) )
& bcapacityne(X0)
& ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) )
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) )
| ( ! [X1] :
( ~ gt(X0,X1)
=> uptakelg(X1) )
& ! [X1] :
( ~ gt(X0,X1)
=> uptakepg(X1) )
& bcapacityex(X0)
& ! [X1] :
( gt(X0,X1)
=> conditionhyper(X1) ) ) ) ) ).
fof(step1,axiom,
! [X0] :
( ( s1(X0)
& qilt27(X0) )
=> drugsu(X0) ) ).
fof(step2,axiom,
! [X0] :
( ( s1(X0)
& ~ qilt27(X0) )
=> drugbg(X0) ) ).
fof(step3,axiom,
! [X0] :
( s2(X0)
=> ( drugbg(X0)
& drugsu(X0) ) ) ).
fof(step4,axiom,
! [X0] :
( s3(X0)
=> ( ( drugi(X0)
& ( drugsu(X0)
| drugbg(X0) ) )
| drugi(X0) ) ) ).
fof(bgcomp,axiom,
! [X0] :
( drugbg(X0)
=> ( ( s1(X0)
& ~ qilt27(X0) )
| s2(X0)
| s3(X0) ) ) ).
fof(sucomp,axiom,
! [X0] :
( drugsu(X0)
=> ( ( s1(X0)
& qillt27(X0) )
| s2(X0)
| s3(X0) ) ) ).
fof(insulincomp,axiom,
! [X0] :
( drugi(X0)
=> s3(X0) ) ).
fof(insulin_completion,axiom,
! [X0] :
( ( ! [X1] :
( ~ gt(X0,X1)
=> uptakelg(X1) )
| ! [X1] :
( ~ gt(X0,X1)
=> uptakepg(X1) ) )
=> ! [X1] :
( ~ gt(X0,X1)
=> drugi(X1) ) ) ).
fof(uptake_completion,axiom,
! [X0,X1] :
( ~ gt(X0,X1)
=> ( ~ releaselg(X1)
=> uptakelg(X1) ) ) ).
fof(su_completion,axiom,
! [X0] :
( ! [X1] :
( ~ gt(X0,X1)
=> bsecretioni(X1) )
=> ( ! [X1] :
( ~ gt(X0,X1)
=> drugsu(X1) )
& ~ bcapacityex(X0) ) ) ).
fof(bg_completion,axiom,
! [X0] :
( ! [X1] :
( ~ gt(X0,X1)
=> ~ releaselg(X1) )
=> ! [X1] :
( ~ gt(X0,X1)
=> drugbg(X1) ) ) ).
fof(trans_ax1,axiom,
! [X0] :
( ( s0(X0)
& ~ ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) )
=> ? [X1] :
( ~ gt(X0,X1)
& s1(X1)
& ! [X2] :
( gt(X1,X2)
=> conditionhyper(X2) ) ) ) ).
fof(trans_ax2,axiom,
! [X0] :
( ( s1(X0)
& ~ ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) )
=> ? [X1] :
( ~ gt(X0,X1)
& s2(X1)
& ! [X2] :
( gt(X1,X2)
=> conditionhyper(X2) )
& ( bcapacityne(X1)
| bcapacityex(X1) ) ) ) ).
fof(trans_ax3,axiom,
! [X0] :
( ( s2(X0)
& ~ ! [X1] :
( ~ gt(X0,X1)
=> conditionnormo(X1) ) )
=> ? [X1] :
( ~ gt(X0,X1)
& s3(X1)
& ! [X2] :
( gt(X1,X2)
=> conditionhyper(X2) )
& bcapacityex(X1) ) ) ).
%------------------------------------------------------------------------------
./MED002+0.ax
Very long 1705620
./MGT001+0.ax
%--------------------------------------------------------------------------
% File : MGT001+0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Management (Organisation Theory)
% Axioms : Inequalities.
% Version : [Han98] axioms.
% English :
% Refs : [Kam00] Kamps (2000), Email to G. Sutcliffe
% [CH00] Carroll & Hannan (2000), The Demography of Corporation
% [Han98] Hannan (1998), Rethinking Age Dependence in Organizati
% Source : [Kam00]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 0 unt; 0 def)
% Number of atoms : 16 ( 3 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 11 ( 1 ~; 4 |; 2 &)
% ( 3 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 5 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 13 ( 13 !; 0 ?)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----Definition of smaller_or_equal (i.t.o. smaller and equal).
fof(definition_smaller_or_equal,axiom,
! [X,Y] :
( smaller_or_equal(X,Y)
<=> ( smaller(X,Y)
| X = Y ) ) ).
%%----Definition of smaller_or_equal (i.t.o. greater).
%input_formula(definition_smaller_or_equal, axiom, (
% ! [X,Y] :
% ( smaller_or_equal(X,Y)
% <=> ( ~ greater(X,Y) ) ) )).
%----Definition of greater_or_equal (i.t.o. greater and equal).
fof(definition_greater_or_equal,axiom,
! [X,Y] :
( greater_or_equal(X,Y)
<=> ( greater(X,Y)
| X = Y ) ) ).
%%----Definition of greater_or_equal (i.t.o. greater and equal).
%input_formula(definition_greater_or_equal, axiom, (
% ! [X,Y] :
% ( greater_or_equal(X,Y)
% <=> ( ~ greater(Y,X) ) ) )).
%----Definition of smaller (i.t.o. greater).
fof(definition_smaller,axiom,
! [X,Y] :
( smaller(X,Y)
<=> greater(Y,X) ) ).
%----Our notion of greater is strict (irreflexive and antisymmetric).
fof(meaning_postulate_greater_strict,axiom,
! [X,Y] :
~ ( greater(X,Y)
& greater(Y,X) ) ).
%%----Derivable from above.
%input_formula(meaning_postulate_greater_strict2, axiom, (
% ! [X] :
% ( ~ greater(X,X) ) )).
%----Our notion of greater is transitive.
fof(meaning_postulate_greater_transitive,axiom,
! [X,Y,Z] :
( ( greater(X,Y)
& greater(Y,Z) )
=> greater(X,Z) ) ).
%----Hazards of mortality are comparable.
%input_formula(background_ass_a1, axiom, (
% ! [X,T0,T] :
% ( organization(X)
% => ( ( greater(hazard_of_mortality(X,T),hazard_of_mortality(X,T0))
% | equal(hazard_of_mortality(X,T),hazard_of_mortality(X,T0)) )
% => smaller(hazard_of_mortality(X,T),hazard_of_mortality(X,T0)) ) ) )).
%----Trichotomy statement for everything.
%input_formula(meaning_postulate_greater_comparable, axiom, (
% ! [X,Y] :
% ( greater(Y,X)
% | equal(X,Y)
% | greater(X,Y) ) )).
fof(meaning_postulate_greater_comparable,axiom,
! [X,Y] :
( smaller(X,Y)
| X = Y
| greater(X,Y) ) ).
%--------------------------------------------------------------------------
./MGT001-0.ax
%--------------------------------------------------------------------------
% File : MGT001-0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Management (Organisation Theory)
% Axioms : Inequalities.
% Version : [Han98] axioms.
% English :
% Refs : [Kam00] Kamps (2000), Email to G. Sutcliffe
% [CH00] Carroll & Hannan (2000), The Demography of Corporation
% [Han98] Hannan (1998), Rethinking Age Dependence in Organizati
% Source : [Kam00]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 0 unt; 3 nHn; 10 RR)
% Number of literals : 26 ( 5 equ; 12 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 23 ( 0 sgn)
% SPC :
% Comments : Created with tptp2X -f tptp -t clausify:otter MGT001+0.ax
%--------------------------------------------------------------------------
cnf(definition_smaller_or_equal_1,axiom,
( ~ smaller_or_equal(A,B)
| smaller(A,B)
| A = B ) ).
cnf(definition_smaller_or_equal_2,axiom,
( ~ smaller(A,B)
| smaller_or_equal(A,B) ) ).
cnf(definition_smaller_or_equal_3,axiom,
( A != B
| smaller_or_equal(A,B) ) ).
cnf(definition_greater_or_equal_4,axiom,
( ~ greater_or_equal(A,B)
| greater(A,B)
| A = B ) ).
cnf(definition_greater_or_equal_5,axiom,
( ~ greater(A,B)
| greater_or_equal(A,B) ) ).
cnf(definition_greater_or_equal_6,axiom,
( A != B
| greater_or_equal(A,B) ) ).
cnf(definition_smaller_7,axiom,
( ~ smaller(A,B)
| greater(B,A) ) ).
cnf(definition_smaller_8,axiom,
( ~ greater(A,B)
| smaller(B,A) ) ).
cnf(meaning_postulate_greater_strict_9,axiom,
( ~ greater(A,B)
| ~ greater(B,A) ) ).
cnf(meaning_postulate_greater_transitive_10,axiom,
( ~ greater(A,B)
| ~ greater(B,C)
| greater(A,C) ) ).
cnf(meaning_postulate_greater_comparable_11,axiom,
( smaller(A,B)
| A = B
| greater(A,B) ) ).
%--------------------------------------------------------------------------
./MSC001-0.ax
Very long 4534
./MSC001-1.ax
Very long 6962
./MSC001-2.ax
Very long 794
./MVA001-0.ax
%------------------------------------------------------------------------------
% File : MVA001-0 : TPTP v8.2.0. Released v8.0.0.
% Domain : MV-algebras
% Axioms : Generalized MV algebras (equality)
% Version : [Ver10] (equality) axioms.
% English :
% Refs : [GT05] Galatos & Tsinakis (2005), Generalized MV-algebras
% : [GJ+07] Galatos et al. (2007), Residuated Lattices: An Algebra
% : [Ver10] Veroff (2010), Email to Geoff Sutcliffe
% : [Sma21] Smallbone (2021), Email to Geoff Sutcliffe
% Source : [Ver10]
% Names : gmv+1.ax [Sma21]
% Status : Satisfiable
% Syntax : Number of clauses : 18 ( 18 unt; 0 nHn; 0 RR)
% Number of literals : 18 ( 18 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 7 ( 7 usr; 1 con; 0-2 aty)
% Number of variables : 39 ( 6 sgn)
% SPC : CNF_SAT_RFO_PEQ_UEQ
% Comments :
%------------------------------------------------------------------------------
cnf(associativity_of_meet,axiom,
( meet(meet(X,Y),Z) = meet(X,meet(Y,Z)) )).
cnf(associativity_of_join,axiom,
( join(join(X,Y),Z) = join(X,join(Y,Z)) )).
cnf(idempotence_of_meet,axiom,
( meet(X,X) = X )).
cnf(idempotence_of_join,axiom,
( join(X,X) = X )).
cnf(commutativity_of_meet,axiom,
( meet(X,Y) = meet(Y,X) )).
cnf(commutativity_of_join,axiom,
( join(X,Y) = join(Y,X) )).
cnf(absorption_a,axiom,
( join(meet(X,Y),X) = X )).
cnf(absorption_b,axiom,
( meet(join(X,Y),X) = X )).
cnf(residual_a,axiom,
( join(op(X,meet(ld(X,Z),Y)),Z) = Z )).
cnf(residual_b,axiom,
( join(op(meet(Y,rd(Z,X)),X),Z) = Z )).
cnf(residual_c,axiom,
( meet(ld(X,join(op(X,Y),Z)),Y) = Y )).
cnf(residual_d,axiom,
( meet(rd(join(op(Y,X),Z),X),Y) = Y )).
cnf(monoid_associativity,axiom,
( op(op(X,Y),Z) = op(X,op(Y,Z)) )).
cnf(left_monoid_unit,axiom,
( op(unit,X) = X )).
cnf(right_monoid_unit,axiom,
( op(X,unit) = X )).
cnf(generalized_mv_algebra_a,axiom,
( join(X,Y) = rd(X,ld(join(X,Y),X)) )).
cnf(generalized_mv_algebra_b,axiom,
( join(X,Y) = ld(rd(X,join(X,Y)),X) )).
cnf(definition_of_at,axiom,
( at(X,Y) = op(op(X,ld(X,unit)),ld(ld(Y,unit),unit)) )).
%------------------------------------------------------------------------------
./NLP001+0.ax
Very long 3080612
Number Theory
./NUM001-0.ax
%--------------------------------------------------------------------------
% File : NUM001-0 : TPTP v8.2.0. Bugfixed v4.0.0.
% Domain : Number Theory
% Axioms : Number theory axioms
% Version : [LS74] axioms : Incomplete.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental Tests of Resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 4 unt; 0 nHn; 2 RR)
% Number of literals : 8 ( 0 equ; 2 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 10 ( 1 sgn)
% SPC :
% Comments :
% Bugfixes : v4.0.0 - Duplicate successor_equality1 removed.
%--------------------------------------------------------------------------
cnf(adding_zero,axiom,
equalish(add(A,n0),A) ).
cnf(addition,axiom,
equalish(add(A,successor(B)),successor(add(A,B))) ).
cnf(times_zero,axiom,
equalish(multiply(A,n0),n0) ).
cnf(times,axiom,
equalish(multiply(A,successor(B)),add(multiply(A,B),A)) ).
cnf(successor_equality1,axiom,
( ~ equalish(successor(A),successor(B))
| equalish(A,B) ) ).
cnf(successor_substitution,axiom,
( ~ equalish(A,B)
| equalish(successor(A),successor(B)) ) ).
%--------------------------------------------------------------------------
./NUM001-1.ax
%--------------------------------------------------------------------------
% File : NUM001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Number Theory
% Axioms : Number theory less axioms
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental Tests of Resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 0 unt; 0 nHn; 3 RR)
% Number of literals : 7 ( 0 equ; 4 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 8 ( 1 sgn)
% SPC :
% Comments : Requires NUM001-0.ax
%--------------------------------------------------------------------------
cnf(transitivity_of_less,axiom,
( ~ less(A,B)
| ~ less(C,A)
| less(C,B) ) ).
cnf(smaller_number,axiom,
( ~ equalish(add(successor(A),B),C)
| less(B,C) ) ).
cnf(less_lemma,axiom,
( ~ less(A,B)
| equalish(add(successor(predecessor_of_1st_minus_2nd(B,A)),A),B) ) ).
%--------------------------------------------------------------------------
./NUM001-2.ax
%--------------------------------------------------------------------------
% File : NUM001-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Number Theory
% Axioms : Number theory div axioms
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental Tests of Resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 0 unt; 1 nHn; 3 RR)
% Number of literals : 7 ( 0 equ; 3 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 2-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 6 ( 0 sgn)
% SPC :
% Comments : Requires NUM001-0.ax NUM001-1.ax
%--------------------------------------------------------------------------
cnf(divides_only_less_or_equal,axiom,
( ~ divides(A,B)
| less(A,B)
| equalish(A,B) ) ).
cnf(divides_if_less,axiom,
( ~ less(A,B)
| divides(A,B) ) ).
cnf(divides_if_equal,axiom,
( ~ equalish(A,B)
| divides(A,B) ) ).
%--------------------------------------------------------------------------
./NUM002-0.ax
%--------------------------------------------------------------------------
% File : NUM002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Number theory
% Axioms : Number theory (equality) axioms
% Version : [LS74] (equality) axioms : Biased.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental Tests of Resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 12 ( 7 unt; 0 nHn; 5 RR)
% Number of literals : 22 ( 0 equ; 10 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 2-2 aty)
% Number of variables : 35 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(reflexivity,axiom,
equalish(A,A) ).
cnf(transitivity,axiom,
( ~ equalish(A,B)
| ~ equalish(B,C)
| equalish(A,C) ) ).
cnf(commutativity_of_addition,axiom,
equalish(add(A,B),add(B,A)) ).
cnf(associativity_of_addition,axiom,
equalish(add(A,add(B,C)),add(add(A,B),C)) ).
cnf(addition_inverts_subtraction1,axiom,
equalish(subtract(add(A,B),B),A) ).
cnf(addition_inverts_subtraction2,axiom,
equalish(A,subtract(add(A,B),B)) ).
cnf(commutativity1,axiom,
equalish(add(subtract(A,B),C),subtract(add(A,C),B)) ).
cnf(commutativity2,axiom,
equalish(subtract(add(A,B),C),add(subtract(A,C),B)) ).
cnf(add_substitution1,axiom,
( ~ equalish(A,B)
| ~ equalish(C,add(A,D))
| equalish(C,add(B,D)) ) ).
cnf(add_substitution2,axiom,
( ~ equalish(A,B)
| ~ equalish(C,add(D,A))
| equalish(C,add(D,B)) ) ).
cnf(subtract_substitution1,axiom,
( ~ equalish(A,B)
| ~ equalish(C,subtract(A,D))
| equalish(C,subtract(B,D)) ) ).
cnf(subtract_substitution2,axiom,
( ~ equalish(A,B)
| ~ equalish(C,subtract(D,A))
| equalish(C,subtract(D,B)) ) ).
%--------------------------------------------------------------------------
./NUM003-0.ax
%--------------------------------------------------------------------------
% File : NUM003-0 : TPTP v8.2.0. Bugfixed v1.2.1.
% Domain : Number Theory
% Axioms : Number theory axioms, based on Godel set theory
% Version : [BL+86] axioms.
% English :
% Refs : [BL+86] Boyer et al. (1986), Set Theory in First-Order Logic:
% : [McC92] McCune (1992), Email to G. Sutcliffe
% Source : [McC92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 54 ( 0 unt; 32 nHn; 54 RR)
% Number of literals : 215 ( 16 equ; 116 neg)
% Maximal clause size : 7 ( 3 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 1-3 aty)
% Number of functors : 29 ( 29 usr; 7 con; 0-3 aty)
% Number of variables : 90 ( 0 sgn)
% SPC :
% Comments : Requires SET003-0.ax ALG001-0.ax
% Bugfixes : v1.2.1 - Clauses finite3 and finite5 fixed.
%--------------------------------------------------------------------------
%----Definition of natural_numbers (natural numbers)
cnf(natural_numbers1,axiom,
( ~ member(Z,natural_numbers)
| ~ little_set(Xs)
| ~ member(empty_set,Xs)
| member(f43(Z,Xs),Xs)
| member(Z,Xs) ) ).
cnf(natural_numbers2,axiom,
( ~ member(Z,natural_numbers)
| ~ little_set(Xs)
| ~ member(empty_set,Xs)
| ~ member(successor(f43(Z,Xs)),Xs)
| member(Z,Xs) ) ).
cnf(natural_numbers3,axiom,
( member(Z,natural_numbers)
| ~ little_set(Z)
| little_set(f44(Z)) ) ).
cnf(natural_numbers4,axiom,
( member(Z,natural_numbers)
| ~ little_set(Z)
| member(empty_set,f44(Z)) ) ).
cnf(natural_numbers5,axiom,
( member(Z,natural_numbers)
| ~ little_set(Z)
| ~ member(Xk,f44(Z))
| member(successor(Xk),f44(Z)) ) ).
cnf(natural_numbers6,axiom,
( member(Z,natural_numbers)
| ~ member(Z,f44(Z)) ) ).
%----Definition of plus
cnf(plus1,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| member(f45(Z,Xs),natural_numbers)
| member(f46(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus2,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| member(f45(Z,Xs),natural_numbers)
| member(f47(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus3,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| member(f45(Z,Xs),natural_numbers)
| member(f48(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus4,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| member(f45(Z,Xs),natural_numbers)
| member(ordered_pair(ordered_pair(f46(Z,Xs),f47(Z,Xs)),f48(Z,Xs)),Xs)
| member(Z,Xs) ) ).
cnf(plus5,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| member(f45(Z,Xs),natural_numbers)
| ~ member(ordered_pair(ordered_pair(successor(f46(Z,Xs)),f47(Z,Xs)),successor(f48(Z,Xs))),Xs)
| member(Z,Xs) ) ).
cnf(plus6,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f45(Z,Xs)),f45(Z,Xs)),Xs)
| member(f46(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus7,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f45(Z,Xs)),f45(Z,Xs)),Xs)
| member(f47(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus8,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f45(Z,Xs)),f45(Z,Xs)),Xs)
| member(f48(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(plus9,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f45(Z,Xs)),f45(Z,Xs)),Xs)
| member(ordered_pair(ordered_pair(f46(Z,Xs),f47(Z,Xs)),f48(Z,Xs)),Xs)
| member(Z,Xs) ) ).
cnf(plus10,axiom,
( ~ member(Z,plus)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f45(Z,Xs)),f45(Z,Xs)),Xs)
| ~ member(ordered_pair(ordered_pair(successor(f46(Z,Xs)),f47(Z,Xs)),successor(f48(Z,Xs))),Xs)
| member(Z,Xs) ) ).
cnf(plus11,axiom,
( member(Z,plus)
| ~ little_set(Z)
| little_set(f49(Z)) ) ).
cnf(plus12,axiom,
( member(Z,plus)
| ~ little_set(Z)
| ~ member(Xi,natural_numbers)
| member(ordered_pair(ordered_pair(empty_set,Xi),Xi),f49(Z)) ) ).
cnf(plus13,axiom,
( member(Z,plus)
| ~ little_set(Z)
| ~ member(Uu1,natural_numbers)
| ~ member(Xj,natural_numbers)
| ~ member(Xk,natural_numbers)
| ~ member(ordered_pair(ordered_pair(Uu1,Xj),Xk),f49(Z))
| member(ordered_pair(ordered_pair(successor(Uu1),Xj),successor(Xk)),f49(Z)) ) ).
cnf(plus14,axiom,
( member(Z,plus)
| ~ member(Z,f49(Z)) ) ).
%----Definition of times
cnf(times1,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| member(f50(Z,Xs),natural_numbers)
| member(f51(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times2,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| member(f50(Z,Xs),natural_numbers)
| member(f52(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times3,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| member(f50(Z,Xs),natural_numbers)
| member(f53(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times4,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| member(f50(Z,Xs),natural_numbers)
| member(ordered_pair(ordered_pair(f51(Z,Xs),f52(Z,Xs)),f53(Z,Xs)),Xs)
| member(Z,Xs) ) ).
cnf(times5,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| member(f50(Z,Xs),natural_numbers)
| ~ member(ordered_pair(ordered_pair(successor(f51(Z,Xs)),f52(Z,Xs)),apply_to_two_arguments(plus,f53(Z,Xs),f52(Z,Xs))),Xs)
| member(Z,Xs) ) ).
cnf(times6,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f50(Z,Xs)),empty_set),Xs)
| member(f51(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times7,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f50(Z,Xs)),empty_set),Xs)
| member(f52(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times8,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f50(Z,Xs)),empty_set),Xs)
| member(f53(Z,Xs),natural_numbers)
| member(Z,Xs) ) ).
cnf(times9,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f50(Z,Xs)),empty_set),Xs)
| member(ordered_pair(ordered_pair(f51(Z,Xs),f52(Z,Xs)),f53(Z,Xs)),Xs)
| member(Z,Xs) ) ).
cnf(times10,axiom,
( ~ member(Z,times)
| ~ little_set(Xs)
| ~ member(ordered_pair(ordered_pair(empty_set,f50(Z,Xs)),empty_set),Xs)
| ~ member(ordered_pair(ordered_pair(successor(f51(Z,Xs)),f52(Z,Xs)),apply_to_two_arguments(plus,f53(Z,Xs),f52(Z,Xs))),Xs)
| member(Z,Xs) ) ).
cnf(times11,axiom,
( member(Z,times)
| ~ little_set(Z)
| little_set(f54(Z)) ) ).
cnf(times12,axiom,
( member(Z,times)
| ~ little_set(Z)
| ~ member(Xi,natural_numbers)
| member(ordered_pair(ordered_pair(empty_set,Xi),empty_set),f54(Z)) ) ).
cnf(times13,axiom,
( member(Z,times)
| ~ little_set(Z)
| ~ member(Uu2,natural_numbers)
| ~ member(Xj,natural_numbers)
| ~ member(Xk,natural_numbers)
| ~ member(ordered_pair(ordered_pair(Uu2,Xj),Xk),f54(Z))
| member(ordered_pair(ordered_pair(successor(Uu2),Xj),apply_to_two_arguments(plus,Xk,Xj)),f54(Z)) ) ).
cnf(times14,axiom,
( member(Z,times)
| ~ member(Z,f54(Z)) ) ).
%----Definition of prime_numbers
cnf(prime_numbers1,axiom,
( ~ member(Z,prime_numbers)
| member(Z,natural_numbers) ) ).
cnf(prime_numbers2,axiom,
( ~ member(Z,prime_numbers)
| Z != empty_set ) ).
cnf(prime_numbers3,axiom,
( ~ member(Z,prime_numbers)
| Z != successor(empty_set) ) ).
cnf(prime_numbers4,axiom,
( ~ member(Z,prime_numbers)
| ~ member(U,natural_numbers)
| ~ member(V,natural_numbers)
| apply_to_two_arguments(times,U,V) != Z
| member(U,non_ordered_pair(successor(empty_set),Z)) ) ).
cnf(prime_numbers5,axiom,
( member(Z,prime_numbers)
| ~ member(Z,natural_numbers)
| Z = empty_set
| Z = successor(empty_set)
| member(f55(Z),natural_numbers) ) ).
cnf(prime_numbers6,axiom,
( member(Z,prime_numbers)
| ~ member(Z,natural_numbers)
| Z = empty_set
| Z = successor(empty_set)
| member(f56(Z),natural_numbers) ) ).
cnf(prime_numbers7,axiom,
( member(Z,prime_numbers)
| ~ member(Z,natural_numbers)
| Z = empty_set
| Z = successor(empty_set)
| apply_to_two_arguments(times,f55(Z),f56(Z)) = Z ) ).
cnf(prime_numbers8,axiom,
( member(Z,prime_numbers)
| ~ member(Z,natural_numbers)
| Z = empty_set
| Z = successor(empty_set)
| ~ member(f55(Z),non_ordered_pair(successor(empty_set),Z)) ) ).
%----Definition of finite
cnf(finite1,axiom,
( ~ finite(X)
| member(f57(X),natural_numbers) ) ).
cnf(finite2,axiom,
( ~ finite(X)
| maps(f58(X),f57(X),X) ) ).
cnf(finite3,axiom,
( ~ finite(X)
| range_of(f58(X)) = X ) ).
cnf(finite4,axiom,
( ~ finite(X)
| one_to_one_function(f58(X)) ) ).
cnf(finite5,axiom,
( finite(X)
| ~ member(Xn,natural_numbers)
| ~ maps(Xf,Xn,X)
| range_of(Xf) != X
| ~ one_to_one_function(Xf) ) ).
%----Definition of twin prime_numbers
cnf(twin_primes1,axiom,
( ~ member(Z,twin_prime_numbers)
| member(Z,prime_numbers) ) ).
cnf(twin_primes2,axiom,
( ~ member(Z,twin_prime_numbers)
| member(successor(successor(Z)),prime_numbers) ) ).
cnf(twin_primes3,axiom,
( member(Z,twin_prime_numbers)
| ~ member(Z,prime_numbers)
| ~ member(successor(successor(Z)),prime_numbers) ) ).
%----Definition of even_numbers (even natural numbers)
cnf(even_numbers1,axiom,
( ~ member(Z,even_numbers)
| member(Z,natural_numbers) ) ).
cnf(even_numbers2,axiom,
( ~ member(Z,even_numbers)
| member(f59(Z),natural_numbers) ) ).
cnf(even_numbers3,axiom,
( ~ member(Z,even_numbers)
| apply_to_two_arguments(plus,f59(Z),f59(Z)) = Z ) ).
cnf(even_numbers4,axiom,
( member(Z,even_numbers)
| ~ member(Z,natural_numbers)
| ~ member(X,natural_numbers)
| apply_to_two_arguments(plus,X,X) != Z ) ).
%--------------------------------------------------------------------------
./NUM004-0.ax
%--------------------------------------------------------------------------
% File : NUM004-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Number Theory (Ordinals)
% Axioms : Number theory (ordinals) axioms, based on NBG set theory
% Version : [Qua92] axioms.
% English :
% Refs : [Qua92] Quaife (1992), Email to G. Sutcliffe
% Source : [Qua92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 46 ( 9 unt; 4 nHn; 40 RR)
% Number of literals : 104 ( 22 equ; 55 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 10 ( 9 usr; 0 prp; 1-3 aty)
% Number of functors : 36 ( 36 usr; 12 con; 0-3 aty)
% Number of variables : 89 ( 8 sgn)
% SPC :
% Comments : Requires SET004-0.ax SET004-1.ax
%--------------------------------------------------------------------------
%----Definition of symmetrization of a class.
cnf(symmetrization,axiom,
union(X,inverse(X)) = symmetrization_of(X) ).
%----could define (irreflexive(x) = (x * ~(identity_relation))).
cnf(irreflexive1,axiom,
( ~ irreflexive(X,Y)
| subclass(restrict(X,Y,Y),complement(identity_relation)) ) ).
cnf(irreflexive2,axiom,
( ~ subclass(restrict(X,Y,Y),complement(identity_relation))
| irreflexive(X,Y) ) ).
%----Definition of connected.
cnf(connected1,axiom,
( ~ connected(X,Y)
| subclass(cross_product(Y,Y),union(identity_relation,symmetrization_of(X))) ) ).
cnf(connected2,axiom,
( ~ subclass(cross_product(Y,Y),union(identity_relation,symmetrization_of(X)))
| connected(X,Y) ) ).
%----Definition of transitive.
%----T(x) <--> ((x ^ x) < x).
cnf(transitive1,axiom,
( ~ transitive(Xr,Y)
| subclass(compose(restrict(Xr,Y,Y),restrict(Xr,Y,Y)),restrict(Xr,Y,Y)) ) ).
cnf(transitive2,axiom,
( ~ subclass(compose(restrict(Xr,Y,Y),restrict(Xr,Y,Y)),restrict(Xr,Y,Y))
| transitive(Xr,Y) ) ).
%----or:
%----transitive(x,y) --> (x < cross_product(V,V)).
%----transitive(x,y) --> ((restrict(x,y,y) ^ restrict(x,y,y)) < x).
%----((restrict(x,y,y) ^ restrict(x,y,y)) < x), (x < cross_product(V,V))
%---- --> transitive(x,y).
%----Definition of asymmetric.
%----asymmetric(x) <--> ((x * inverse(x)) = null_class).
cnf(asymmetric1,axiom,
( ~ asymmetric(Xr,Y)
| restrict(intersection(Xr,inverse(Xr)),Y,Y) = null_class ) ).
cnf(asymmetric2,axiom,
( restrict(intersection(Xr,inverse(Xr)),Y,Y) != null_class
| asymmetric(Xr,Y) ) ).
%----Definition of minimal element.
%----minimum(x,y,z) --> (z e y).
%----minimum(x,y,z) --> (restrict(x,y,{z}) = null_class).
%----(restrict(x,y,{z}) = null_class), (z e y) --> minimum(x,y,z).
%----Definition of segment.
%----If this is useful enough to define, should use it in definition
%----of WE. --> (segment(xr,y,z) = (y * (inverse(xr) image {z}))).
cnf(segment,axiom,
segment(Xr,Y,Z) = domain_of(restrict(Xr,Y,singleton(Z))) ).
%----Definition of well ordering.
cnf(well_ordering1,axiom,
( ~ well_ordering(X,Y)
| connected(X,Y) ) ).
cnf(well_ordering2,axiom,
( ~ well_ordering(Xr,Y)
| ~ subclass(U,Y)
| U = null_class
| member(least(Xr,U),U) ) ).
cnf(well_ordering3,axiom,
( ~ well_ordering(Xr,Y)
| ~ subclass(U,Y)
| ~ member(V,U)
| member(least(Xr,U),U) ) ).
cnf(well_ordering4,axiom,
( ~ well_ordering(Xr,Y)
| ~ subclass(U,Y)
| segment(Xr,U,least(Xr,U)) = null_class ) ).
cnf(well_ordering5,axiom,
( ~ well_ordering(Xr,Y)
| ~ subclass(U,Y)
| ~ member(V,U)
| ~ member(ordered_pair(V,least(Xr,U)),Xr) ) ).
cnf(well_ordering6,axiom,
( ~ connected(Xr,Y)
| not_well_ordering(Xr,Y) != null_class
| well_ordering(Xr,Y) ) ).
cnf(well_ordering7,axiom,
( ~ connected(Xr,Y)
| subclass(not_well_ordering(Xr,Y),Y)
| well_ordering(Xr,Y) ) ).
cnf(well_ordering8,axiom,
( ~ member(V,not_well_ordering(Xr,Y))
| segment(Xr,not_well_ordering(Xr,Y),V) != null_class
| ~ connected(Xr,Y)
| well_ordering(Xr,Y) ) ).
%----Definition of section.
cnf(section1,axiom,
( ~ section(Xr,Y,Z)
| subclass(Y,Z) ) ).
cnf(section2,axiom,
( ~ section(Xr,Y,Z)
| subclass(domain_of(restrict(Xr,Z,Y)),Y) ) ).
%----section(xr,y,z) --> (restrict(xr,z,y) < cross_product(y,y)).
%----section(xr,y,z) --> ((z * (inverse(xr) image y)) < y).
cnf(section3,axiom,
( ~ subclass(Y,Z)
| ~ subclass(domain_of(restrict(Xr,Z,Y)),Y)
| section(Xr,Y,Z) ) ).
%----Definition of ordinal class.
%----Use (ORD15) to eliminate ordinal_class(x).
%----ordinal_class(x) --> well_ordering(element_relation,x).
%----ordinal_class(x) --> (sum_class(x) < x).
%----well_ordering(element_relation,x), (sum_class(x) < x) -->
%----ordinal_class(x).
%----Definition of ordinal_numbers by Class Existence Theorem.
%----(x e ordinal_numbers) --> ordinal_class(x).
%----(x e V), ordinal_class(x) --> (x e ordinal_numbers).
cnf(ordinal_numbers1,axiom,
( ~ member(X,ordinal_numbers)
| well_ordering(element_relation,X) ) ).
cnf(ordinal_numbers2,axiom,
( ~ member(X,ordinal_numbers)
| subclass(sum_class(X),X) ) ).
cnf(ordinal_numbers3,axiom,
( ~ well_ordering(element_relation,X)
| ~ subclass(sum_class(X),X)
| ~ member(X,universal_class)
| member(X,ordinal_numbers) ) ).
cnf(ordinal_numbers4,axiom,
( ~ well_ordering(element_relation,X)
| ~ subclass(sum_class(X),X)
| member(X,ordinal_numbers)
| X = ordinal_numbers ) ).
%----(SUCDEF8) Definition of kind_1_ordinals.
cnf(kind_1_ordinals,axiom,
union(singleton(null_class),image(successor_relation,ordinal_numbers)) = kind_1_ordinals ).
%----(LIMDEF1): definition of limit ordinal.
cnf(limit_ordinals,axiom,
intersection(complement(kind_1_ordinals),ordinal_numbers) = limit_ordinals ).
%----(TRECDEF1): definition of rest_of by class existence theorem.
%----rest_of(x) ' u = {[u,w] e x : w e V}.
cnf(rest_of1,axiom,
subclass(rest_of(X),cross_product(universal_class,universal_class)) ).
cnf(rest_of2,axiom,
( ~ member(ordered_pair(U,V),rest_of(X))
| member(U,domain_of(X)) ) ).
cnf(rest_of3,axiom,
( ~ member(ordered_pair(U,V),rest_of(X))
| restrict(X,U,universal_class) = V ) ).
cnf(rest_of4,axiom,
( ~ member(U,domain_of(X))
| restrict(X,U,universal_class) != V
| member(ordered_pair(U,V),rest_of(X)) ) ).
%----(TRECDEF3.8): definition of rest_relation.
cnf(rest_relation1,axiom,
subclass(rest_relation,cross_product(universal_class,universal_class)) ).
cnf(rest_relation2,axiom,
( ~ member(ordered_pair(X,Y),rest_relation)
| rest_of(X) = Y ) ).
cnf(rest_relation3,axiom,
( ~ member(X,universal_class)
| member(ordered_pair(X,rest_of(X)),rest_relation) ) ).
%----(TRECDEF4): Definition of Fn = recursion_equation_functions.
%----If z is being used to define a function by transfinite recursion,
%----then Fn(z) is the class of all partial functions that satisfy the
%----recursion equation, for as far out into the ordinals as they are
%----defined. So THE function defined by z is U Fn(z).
cnf(recursion_equation_functions1,axiom,
( ~ member(X,recursion_equation_functions(Z))
| function(Z) ) ).
cnf(recursion_equation_functions2,axiom,
( ~ member(X,recursion_equation_functions(Z))
| function(X) ) ).
cnf(recursion_equation_functions3,axiom,
( ~ member(X,recursion_equation_functions(Z))
| member(domain_of(X),ordinal_numbers) ) ).
cnf(recursion_equation_functions4,axiom,
( ~ member(X,recursion_equation_functions(Z))
| compose(Z,rest_of(X)) = X ) ).
cnf(recursion_equation_functions5,axiom,
( ~ function(Z)
| ~ function(X)
| ~ member(domain_of(X),ordinal_numbers)
| compose(Z,rest_of(X)) != X
| member(X,recursion_equation_functions(Z)) ) ).
%----(OADEF1): definition of union_of_range_map.
%----Quaife says URAN is the function which maps x into
%----union(range_of(x)).
cnf(union_of_range_map1,axiom,
subclass(union_of_range_map,cross_product(universal_class,universal_class)) ).
cnf(union_of_range_map2,axiom,
( ~ member(ordered_pair(X,Y),union_of_range_map)
| sum_class(range_of(X)) = Y ) ).
cnf(union_of_range_map3,axiom,
( ~ member(ordered_pair(X,Y),cross_product(universal_class,universal_class))
| sum_class(range_of(X)) != Y
| member(ordered_pair(X,Y),union_of_range_map) ) ).
%----(OADEF2): definition of ordinal addition.
cnf(ordinal_addition,axiom,
apply(recursion(X,successor_relation,union_of_range_map),Y) = ordinal_add(X,Y) ).
%----(OADEF3): definition of twisted plus.
%------> (add_relation < cross_product(ordinal_numbers,cross_product(
%---- ordinal_numbers,ordinal_numbers))).
%----([x,[y,z]] e add_relation) --> (ordinal_add(y,x) = z).
%---- ([y,x] e cross_product(ordinal_numbers,ordinal_numbers)) -->
%---- ([x,[y,ordinal_add(x,y)]] e add_relation).
%----(OMDEF1): definition of ordinal multiplication.
cnf(ordinal_multiplication,axiom,
recursion(null_class,apply(add_relation,X),union_of_range_map) = ordinal_multiply(X,Y) ).
%----(IADEF1): integer function.
cnf(integer_function1,axiom,
( ~ member(X,omega)
| integer_of(X) = X ) ).
cnf(integer_function2,axiom,
( member(X,omega)
| integer_of(X) = null_class ) ).
%----(IADEF2): integer addition.
%------> (ordinal_add(integer_of(y),integer_of(x)) = (x + y)).
%----(IADEF3): integer multiplication.
%------> (ordinal_multiply(integer_of(y),integer_of(x)) = (x * y)).
%--------------------------------------------------------------------------
./NUM005+0.ax
%------------------------------------------------------------------------------
% File : NUM005+0 : TPTP v8.2.0. Released v3.1.0.
% Domain : Number Theory
% Axioms : Translating from nXXX to rdn notation
% Version : Especial.
% English : RDN format is "Reverse Decimal Notation". It stores the digits
% of a decimal integer in reverse order.
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 256 ( 256 unt; 0 def)
% Number of atoms : 256 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 260 ( 260 usr; 256 con; 0-2 aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(rdn0,axiom,
rdn_translate(n0,rdn_pos(rdnn(n0))) ).
fof(rdn1,axiom,
rdn_translate(n1,rdn_pos(rdnn(n1))) ).
fof(rdn2,axiom,
rdn_translate(n2,rdn_pos(rdnn(n2))) ).
fof(rdn3,axiom,
rdn_translate(n3,rdn_pos(rdnn(n3))) ).
fof(rdn4,axiom,
rdn_translate(n4,rdn_pos(rdnn(n4))) ).
... and so on
./NUM005+1.ax
%------------------------------------------------------------------------------
% File : NUM005+1 : TPTP v8.2.0. Released v3.1.0.
% Domain : Number Theory
% Axioms : Less in RDN format
% Version : Especial.
% English : Impements a "human style" less using RDN format.
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 30 ( 18 unt; 0 def)
% Number of atoms : 52 ( 2 equ)
% Maximal formula atoms : 4 ( 1 avg)
% Number of connectives : 24 ( 2 ~; 1 |; 9 &)
% ( 2 <=>; 10 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-3 aty)
% Number of functors : 14 ( 14 usr; 10 con; 0-2 aty)
% Number of variables : 35 ( 35 !; 0 ?)
% SPC :
% Comments : Requires NUM005+0.ax
%------------------------------------------------------------------------------
fof(rdn_digit1,axiom,
rdn_non_zero_digit(rdnn(n1)) ).
fof(rdn_digit2,axiom,
rdn_non_zero_digit(rdnn(n2)) ).
fof(rdn_digit3,axiom,
rdn_non_zero_digit(rdnn(n3)) ).
fof(rdn_digit4,axiom,
rdn_non_zero_digit(rdnn(n4)) ).
fof(rdn_digit5,axiom,
rdn_non_zero_digit(rdnn(n5)) ).
fof(rdn_digit6,axiom,
rdn_non_zero_digit(rdnn(n6)) ).
fof(rdn_digit7,axiom,
rdn_non_zero_digit(rdnn(n7)) ).
fof(rdn_digit8,axiom,
rdn_non_zero_digit(rdnn(n8)) ).
fof(rdn_digit9,axiom,
rdn_non_zero_digit(rdnn(n9)) ).
fof(rdn_positive_less01,axiom,
rdn_positive_less(rdnn(n0),rdnn(n1)) ).
fof(rdn_positive_less12,axiom,
rdn_positive_less(rdnn(n1),rdnn(n2)) ).
fof(rdn_positive_less23,axiom,
rdn_positive_less(rdnn(n2),rdnn(n3)) ).
fof(rdn_positive_less34,axiom,
rdn_positive_less(rdnn(n3),rdnn(n4)) ).
fof(rdn_positive_less45,axiom,
rdn_positive_less(rdnn(n4),rdnn(n5)) ).
fof(rdn_positive_less56,axiom,
rdn_positive_less(rdnn(n5),rdnn(n6)) ).
fof(rdn_positive_less67,axiom,
rdn_positive_less(rdnn(n6),rdnn(n7)) ).
fof(rdn_positive_less78,axiom,
rdn_positive_less(rdnn(n7),rdnn(n8)) ).
fof(rdn_positive_less89,axiom,
rdn_positive_less(rdnn(n8),rdnn(n9)) ).
fof(rdn_positive_less_transitivity,axiom,
! [X,Y,Z] :
( ( rdn_positive_less(rdnn(X),rdnn(Y))
& rdn_positive_less(rdnn(Y),rdnn(Z)) )
=> rdn_positive_less(rdnn(X),rdnn(Z)) ) ).
fof(rdn_positive_less_multi_digit_high,axiom,
! [Ds,Os,Db,Ob] :
( rdn_positive_less(Os,Ob)
=> rdn_positive_less(rdn(rdnn(Ds),Os),rdn(rdnn(Db),Ob)) ) ).
fof(rdn_positive_less_multi_digit_low,axiom,
! [Ds,O,Db] :
( ( rdn_positive_less(rdnn(Ds),rdnn(Db))
& rdn_non_zero(O) )
=> rdn_positive_less(rdn(rdnn(Ds),O),rdn(rdnn(Db),O)) ) ).
fof(rdn_extra_digits_positive_less,axiom,
! [D,Db,Ob] :
( rdn_non_zero(Ob)
=> rdn_positive_less(rdnn(D),rdn(rdnn(Db),Ob)) ) ).
fof(rdn_non_zero_by_digit,axiom,
! [X] :
( rdn_non_zero_digit(rdnn(X))
=> rdn_non_zero(rdnn(X)) ) ).
fof(rdn_non_zero_by_structure,axiom,
! [D,O] :
( rdn_non_zero(O)
=> rdn_non_zero(rdn(rdnn(D),O)) ) ).
fof(less_entry_point_pos_pos,axiom,
! [X,Y,RDN_X,RDN_Y] :
( ( rdn_translate(X,rdn_pos(RDN_X))
& rdn_translate(Y,rdn_pos(RDN_Y))
& rdn_positive_less(RDN_X,RDN_Y) )
=> less(X,Y) ) ).
fof(less_entry_point_neg_pos,axiom,
! [X,Y,RDN_X,RDN_Y] :
( ( rdn_translate(X,rdn_neg(RDN_X))
& rdn_translate(Y,rdn_pos(RDN_Y)) )
=> less(X,Y) ) ).
fof(less_entry_point_neg_neg,axiom,
! [X,Y,RDN_X,RDN_Y] :
( ( rdn_translate(X,rdn_neg(RDN_X))
& rdn_translate(Y,rdn_neg(RDN_Y))
& rdn_positive_less(RDN_Y,RDN_X) )
=> less(X,Y) ) ).
fof(less_property,axiom,
! [X,Y] :
( less(X,Y)
<=> ( ~ less(Y,X)
& Y != X ) ) ).
%----Old axiom from the days of natural numbers
%fof(less0,axiom,(
% ~ ( ? [X] : less(X,n0) ) )).
fof(less_or_equal,axiom,
! [X,Y] :
( less_or_equal(X,Y)
<=> ( less(X,Y)
| X = Y ) ) ).
%----Successive integers
fof(less_successor,axiom,
! [X,Y,Z] :
( ( sum(X,n1,Y)
& less(Z,Y) )
=> less_or_equal(Z,X) ) ).
%------------------------------------------------------------------------------
./NUM005+2.ax
%------------------------------------------------------------------------------
% File : NUM005+2 : TPTP v8.2.0. Released v3.1.0.
% Domain : Number Theory
% Axioms : Sum in RDN format
% Version : Especial.
% English : Impements a "human style" addition using RDN format.
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 115 ( 100 unt; 0 def)
% Number of atoms : 164 ( 3 equ)
% Maximal formula atoms : 8 ( 1 avg)
% Number of connectives : 49 ( 0 ~; 0 |; 34 &)
% ( 1 <=>; 14 =>; 0 <=; 0 <~>)
% Maximal formula depth : 19 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-4 aty)
% Number of functors : 14 ( 14 usr; 10 con; 0-2 aty)
% Number of variables : 86 ( 86 !; 0 ?)
% SPC :
% Comments : Requires NUM005+0.ax NUM005+1.ax
%------------------------------------------------------------------------------
%----Addition entry points
%----pos(X) + pos(Y)
fof(sum_entry_point_pos_pos,axiom,
! [X,Y,Z,RDN_X,RDN_Y,RDN_Z] :
( ( rdn_translate(X,rdn_pos(RDN_X))
& rdn_translate(Y,rdn_pos(RDN_Y))
& rdn_add_with_carry(rdnn(n0),RDN_X,RDN_Y,RDN_Z)
& rdn_translate(Z,rdn_pos(RDN_Z)) )
=> sum(X,Y,Z) ) ).
%----neg(X) + neg(Y)
fof(sum_entry_point_neg_neg,axiom,
! [X,Y,Z,RDN_X,RDN_Y,RDN_Z] :
( ( rdn_translate(X,rdn_neg(RDN_X))
& rdn_translate(Y,rdn_neg(RDN_Y))
& rdn_add_with_carry(rdnn(n0),RDN_X,RDN_Y,RDN_Z)
& rdn_translate(Z,rdn_neg(RDN_Z)) )
=> sum(X,Y,Z) ) ).
%----pos(X) + neg(Y), X < Y
fof(sum_entry_point_pos_neg_1,axiom,
! [X,Y,Z,RDN_X,RDN_Y,RDN_Z] :
( ( rdn_translate(X,rdn_pos(RDN_X))
& rdn_translate(Y,rdn_neg(RDN_Y))
& rdn_positive_less(RDN_X,RDN_Y)
& rdn_add_with_carry(rdnn(n0),RDN_X,RDN_Z,RDN_Y)
& rdn_translate(Z,rdn_neg(RDN_Z)) )
=> sum(X,Y,Z) ) ).
%----pos(X) + neg(Y), X > Y
fof(sum_entry_point_pos_neg_2,axiom,
! [X,Y,Z,RDN_X,RDN_Y,RDN_Z] :
( ( rdn_translate(X,rdn_pos(RDN_X))
& rdn_translate(Y,rdn_neg(RDN_Y))
& rdn_positive_less(RDN_Y,RDN_X)
& rdn_add_with_carry(rdnn(n0),RDN_Y,RDN_Z,RDN_X)
& rdn_translate(Z,rdn_pos(RDN_Z)) )
=> sum(X,Y,Z) ) ).
%----pos(X) + neg(X), X + -X = n0
fof(sum_entry_point_posx_negx,axiom,
! [POS_X,NEG_X,RDN_X] :
( ( rdn_translate(POS_X,rdn_pos(RDN_X))
& rdn_translate(NEG_X,rdn_neg(RDN_X)) )
=> sum(POS_X,NEG_X,n0) ) ).
%----neg + pos
fof(sum_entry_point_neg_pos,axiom,
! [X,Y,Z,RDN_X,RDN_Y] :
( ( rdn_translate(X,rdn_neg(RDN_X))
& rdn_translate(Y,rdn_pos(RDN_Y))
& sum(Y,X,Z) )
=> sum(X,Y,Z) ) ).
%----Sum is unique
fof(unique_sum,axiom,
! [X,Y,Z1,Z2] :
( ( sum(X,Y,Z1)
& sum(X,Y,Z2) )
=> Z1 = Z2 ) ).
%----Operands are unique
fof(unique_LHS,axiom,
! [X1,X2,Y,Z] :
( ( sum(X1,Y,Z)
& sum(X2,Y,Z) )
=> X1 = X2 ) ).
fof(unique_RHS,axiom,
! [X,Y1,Y2,Z] :
( ( sum(X,Y1,Z)
& sum(X,Y2,Z) )
=> Y1 = Y2 ) ).
%----Difference is just sum in reverse
fof(minus_entry_point,axiom,
! [X,Y,Z] :
( sum(Y,Z,X)
<=> difference(X,Y,Z) ) ).
%----Addition of positive RDN numbers
fof(add_digit_digit_digit,axiom,
! [C,D1,D2,RD,ID] :
( ( rdn_digit_add(rdnn(D1),rdnn(D2),rdnn(ID),rdnn(n0))
& rdn_digit_add(rdnn(ID),rdnn(C),rdnn(RD),rdnn(n0)) )
=> rdn_add_with_carry(rdnn(C),rdnn(D1),rdnn(D2),rdnn(RD)) ) ).
fof(add_digit_digit_rdn,axiom,
! [C,D1,D2,ID,RD,IC1,IC2] :
( ( rdn_digit_add(rdnn(D1),rdnn(D2),rdnn(ID),rdnn(IC1))
& rdn_digit_add(rdnn(ID),rdnn(C),rdnn(RD),rdnn(IC2))
& rdn_digit_add(rdnn(IC1),rdnn(IC2),rdnn(n1),rdnn(n0)) )
=> rdn_add_with_carry(rdnn(C),rdnn(D1),rdnn(D2),rdn(rdnn(RD),rdnn(n1))) ) ).
fof(add_digit_rdn_rdn,axiom,
! [C,D1,D2,O2,RD,RO,ID,IC1,IC2,NC] :
( ( rdn_digit_add(rdnn(D1),rdnn(D2),rdnn(ID),rdnn(IC1))
& rdn_digit_add(rdnn(ID),rdnn(C),rdnn(RD),rdnn(IC2))
& rdn_digit_add(rdnn(IC1),rdnn(IC2),rdnn(NC),rdnn(n0))
& rdn_add_with_carry(rdnn(NC),rdnn(n0),O2,RO)
& rdn_non_zero(O2)
& rdn_non_zero(RO) )
=> rdn_add_with_carry(rdnn(C),rdnn(D1),rdn(rdnn(D2),O2),rdn(rdnn(RD),RO)) ) ).
fof(add_rdn_rdn_rdn,axiom,
! [C,D1,O1,D2,O2,RD,RO,ID,IC1,IC2,RC] :
( ( rdn_digit_add(rdnn(D1),rdnn(D2),rdnn(ID),rdnn(IC1))
& rdn_digit_add(rdnn(ID),rdnn(C),rdnn(RD),rdnn(IC2))
& rdn_digit_add(rdnn(IC1),rdnn(IC2),rdnn(RC),rdnn(n0))
& rdn_add_with_carry(rdnn(RC),O1,O2,RO)
& rdn_non_zero(O1)
& rdn_non_zero(O2)
& rdn_non_zero(RO) )
=> rdn_add_with_carry(rdnn(C),rdn(rdnn(D1),O1),rdn(rdnn(D2),O2),rdn(rdnn(RD),RO)) ) ).
fof(add_rdn_digit_rdn,axiom,
! [C,D1,O1,D2,RD,RO] :
( rdn_add_with_carry(rdnn(C),rdnn(D2),rdn(rdnn(D1),O1),rdn(rdnn(RD),RO))
=> rdn_add_with_carry(rdnn(C),rdn(rdnn(D1),O1),rdnn(D2),rdn(rdnn(RD),RO)) ) ).
fof(rdn_digit_add_n0_n0_n0_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n0),rdnn(n0),rdnn(n0)) ).
fof(rdn_digit_add_n0_n1_n1_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n1),rdnn(n1),rdnn(n0)) ).
fof(rdn_digit_add_n0_n2_n2_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n2),rdnn(n2),rdnn(n0)) ).
fof(rdn_digit_add_n0_n3_n3_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n3),rdnn(n3),rdnn(n0)) ).
fof(rdn_digit_add_n0_n4_n4_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n4),rdnn(n4),rdnn(n0)) ).
fof(rdn_digit_add_n0_n5_n5_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n5),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n0_n6_n6_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n6),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n0_n7_n7_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n7),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n0_n8_n8_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n8),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n0_n9_n9_n0,axiom,
rdn_digit_add(rdnn(n0),rdnn(n9),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n1_n0_n1_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n0),rdnn(n1),rdnn(n0)) ).
fof(rdn_digit_add_n1_n1_n2_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n1),rdnn(n2),rdnn(n0)) ).
fof(rdn_digit_add_n1_n2_n3_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n2),rdnn(n3),rdnn(n0)) ).
fof(rdn_digit_add_n1_n3_n4_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n3),rdnn(n4),rdnn(n0)) ).
fof(rdn_digit_add_n1_n4_n5_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n4),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n1_n5_n6_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n5),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n1_n6_n7_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n6),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n1_n7_n8_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n7),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n1_n8_n9_n0,axiom,
rdn_digit_add(rdnn(n1),rdnn(n8),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n1_n9_n0_n1,axiom,
rdn_digit_add(rdnn(n1),rdnn(n9),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n2_n0_n2_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n0),rdnn(n2),rdnn(n0)) ).
fof(rdn_digit_add_n2_n1_n3_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n1),rdnn(n3),rdnn(n0)) ).
fof(rdn_digit_add_n2_n2_n4_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n2),rdnn(n4),rdnn(n0)) ).
fof(rdn_digit_add_n2_n3_n5_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n3),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n2_n4_n6_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n4),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n2_n5_n7_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n5),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n2_n6_n8_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n6),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n2_n7_n9_n0,axiom,
rdn_digit_add(rdnn(n2),rdnn(n7),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n2_n8_n0_n1,axiom,
rdn_digit_add(rdnn(n2),rdnn(n8),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n2_n9_n1_n1,axiom,
rdn_digit_add(rdnn(n2),rdnn(n9),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n3_n0_n3_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n0),rdnn(n3),rdnn(n0)) ).
fof(rdn_digit_add_n3_n1_n4_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n1),rdnn(n4),rdnn(n0)) ).
fof(rdn_digit_add_n3_n2_n5_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n2),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n3_n3_n6_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n3),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n3_n4_n7_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n4),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n3_n5_n8_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n5),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n3_n6_n9_n0,axiom,
rdn_digit_add(rdnn(n3),rdnn(n6),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n3_n7_n0_n1,axiom,
rdn_digit_add(rdnn(n3),rdnn(n7),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n3_n8_n1_n1,axiom,
rdn_digit_add(rdnn(n3),rdnn(n8),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n3_n9_n2_n1,axiom,
rdn_digit_add(rdnn(n3),rdnn(n9),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n4_n0_n4_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n0),rdnn(n4),rdnn(n0)) ).
fof(rdn_digit_add_n4_n1_n5_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n1),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n4_n2_n6_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n2),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n4_n3_n7_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n3),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n4_n4_n8_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n4),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n4_n5_n9_n0,axiom,
rdn_digit_add(rdnn(n4),rdnn(n5),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n4_n6_n0_n1,axiom,
rdn_digit_add(rdnn(n4),rdnn(n6),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n4_n7_n1_n1,axiom,
rdn_digit_add(rdnn(n4),rdnn(n7),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n4_n8_n2_n1,axiom,
rdn_digit_add(rdnn(n4),rdnn(n8),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n4_n9_n3_n1,axiom,
rdn_digit_add(rdnn(n4),rdnn(n9),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n5_n0_n5_n0,axiom,
rdn_digit_add(rdnn(n5),rdnn(n0),rdnn(n5),rdnn(n0)) ).
fof(rdn_digit_add_n5_n1_n6_n0,axiom,
rdn_digit_add(rdnn(n5),rdnn(n1),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n5_n2_n7_n0,axiom,
rdn_digit_add(rdnn(n5),rdnn(n2),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n5_n3_n8_n0,axiom,
rdn_digit_add(rdnn(n5),rdnn(n3),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n5_n4_n9_n0,axiom,
rdn_digit_add(rdnn(n5),rdnn(n4),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n5_n5_n0_n1,axiom,
rdn_digit_add(rdnn(n5),rdnn(n5),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n5_n6_n1_n1,axiom,
rdn_digit_add(rdnn(n5),rdnn(n6),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n5_n7_n2_n1,axiom,
rdn_digit_add(rdnn(n5),rdnn(n7),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n5_n8_n3_n1,axiom,
rdn_digit_add(rdnn(n5),rdnn(n8),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n5_n9_n4_n1,axiom,
rdn_digit_add(rdnn(n5),rdnn(n9),rdnn(n4),rdnn(n1)) ).
fof(rdn_digit_add_n6_n0_n6_n0,axiom,
rdn_digit_add(rdnn(n6),rdnn(n0),rdnn(n6),rdnn(n0)) ).
fof(rdn_digit_add_n6_n1_n7_n0,axiom,
rdn_digit_add(rdnn(n6),rdnn(n1),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n6_n2_n8_n0,axiom,
rdn_digit_add(rdnn(n6),rdnn(n2),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n6_n3_n9_n0,axiom,
rdn_digit_add(rdnn(n6),rdnn(n3),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n6_n4_n0_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n4),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n6_n5_n1_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n5),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n6_n6_n2_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n6),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n6_n7_n3_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n7),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n6_n8_n4_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n8),rdnn(n4),rdnn(n1)) ).
fof(rdn_digit_add_n6_n9_n5_n1,axiom,
rdn_digit_add(rdnn(n6),rdnn(n9),rdnn(n5),rdnn(n1)) ).
fof(rdn_digit_add_n7_n0_n7_n0,axiom,
rdn_digit_add(rdnn(n7),rdnn(n0),rdnn(n7),rdnn(n0)) ).
fof(rdn_digit_add_n7_n1_n8_n0,axiom,
rdn_digit_add(rdnn(n7),rdnn(n1),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n7_n2_n9_n0,axiom,
rdn_digit_add(rdnn(n7),rdnn(n2),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n7_n3_n0_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n3),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n7_n4_n1_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n4),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n7_n5_n2_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n5),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n7_n6_n3_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n6),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n7_n7_n4_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n7),rdnn(n4),rdnn(n1)) ).
fof(rdn_digit_add_n7_n8_n5_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n8),rdnn(n5),rdnn(n1)) ).
fof(rdn_digit_add_n7_n9_n6_n1,axiom,
rdn_digit_add(rdnn(n7),rdnn(n9),rdnn(n6),rdnn(n1)) ).
fof(rdn_digit_add_n8_n0_n8_n0,axiom,
rdn_digit_add(rdnn(n8),rdnn(n0),rdnn(n8),rdnn(n0)) ).
fof(rdn_digit_add_n8_n1_n9_n0,axiom,
rdn_digit_add(rdnn(n8),rdnn(n1),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n8_n2_n0_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n2),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n8_n3_n1_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n3),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n8_n4_n2_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n4),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n8_n5_n3_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n5),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n8_n6_n4_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n6),rdnn(n4),rdnn(n1)) ).
fof(rdn_digit_add_n8_n7_n5_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n7),rdnn(n5),rdnn(n1)) ).
fof(rdn_digit_add_n8_n8_n6_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n8),rdnn(n6),rdnn(n1)) ).
fof(rdn_digit_add_n8_n9_n7_n1,axiom,
rdn_digit_add(rdnn(n8),rdnn(n9),rdnn(n7),rdnn(n1)) ).
fof(rdn_digit_add_n9_n0_n9_n0,axiom,
rdn_digit_add(rdnn(n9),rdnn(n0),rdnn(n9),rdnn(n0)) ).
fof(rdn_digit_add_n9_n1_n0_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n1),rdnn(n0),rdnn(n1)) ).
fof(rdn_digit_add_n9_n2_n1_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n2),rdnn(n1),rdnn(n1)) ).
fof(rdn_digit_add_n9_n3_n2_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n3),rdnn(n2),rdnn(n1)) ).
fof(rdn_digit_add_n9_n4_n3_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n4),rdnn(n3),rdnn(n1)) ).
fof(rdn_digit_add_n9_n5_n4_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n5),rdnn(n4),rdnn(n1)) ).
fof(rdn_digit_add_n9_n6_n5_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n6),rdnn(n5),rdnn(n1)) ).
fof(rdn_digit_add_n9_n7_n6_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n7),rdnn(n6),rdnn(n1)) ).
fof(rdn_digit_add_n9_n8_n7_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n8),rdnn(n7),rdnn(n1)) ).
fof(rdn_digit_add_n9_n9_n8_n1,axiom,
rdn_digit_add(rdnn(n9),rdnn(n9),rdnn(n8),rdnn(n1)) ).
%------------------------------------------------------------------------------
./NUM006^0.ax
%------------------------------------------------------------------------------
% File : NUM006^0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Number Theory
% Axioms : Church Numerals in Simple Type Theory
% Version : [Ben08] axioms : Especial.
% English :
% Refs : [Ben08] Benzmueller (2008), Email to G. Sutcliffe
% Source : [Ben08]
% Names : CHURCH_NUM [Ben08]
% Status : Satisfiable
% Syntax : Number of formulae : 28 ( 14 unt; 14 typ; 14 def)
% Number of atoms : 14 ( 14 equ; 0 cnn)
% Maximal formula atoms : 1 ( 0 avg)
% Number of connectives : 65 ( 0 ~; 0 |; 0 &; 65 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 65 nst)
% Number of types : 1 ( 0 usr)
% Number of type conns : 91 ( 91 >; 0 *; 0 +; 0 <<)
% Number of symbols : 15 ( 14 usr; 0 con; 2-4 aty)
% Number of variables : 33 ( 33 ^ 0 !; 0 ?; 33 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
thf(zero,type,
zero: ( $i > $i ) > $i > $i ).
thf(one,type,
one: ( $i > $i ) > $i > $i ).
thf(two,type,
two: ( $i > $i ) > $i > $i ).
thf(three,type,
three: ( $i > $i ) > $i > $i ).
thf(four,type,
four: ( $i > $i ) > $i > $i ).
thf(five,type,
five: ( $i > $i ) > $i > $i ).
thf(six,type,
six: ( $i > $i ) > $i > $i ).
thf(seven,type,
seven: ( $i > $i ) > $i > $i ).
thf(eight,type,
eight: ( $i > $i ) > $i > $i ).
thf(nine,type,
nine: ( $i > $i ) > $i > $i ).
thf(ten,type,
ten: ( $i > $i ) > $i > $i ).
thf(succ,type,
succ: ( ( $i > $i ) > $i > $i ) > ( $i > $i ) > $i > $i ).
thf(plus,type,
plus: ( ( $i > $i ) > $i > $i ) > ( ( $i > $i ) > $i > $i ) > ( $i > $i ) > $i > $i ).
thf(mult,type,
mult: ( ( $i > $i ) > $i > $i ) > ( ( $i > $i ) > $i > $i ) > ( $i > $i ) > $i > $i ).
thf(zero_ax,definition,
( zero
= ( ^ [X: $i > $i,Y: $i] : Y ) ) ).
thf(one_ax,definition,
( one
= ( ^ [X: $i > $i,Y: $i] : ( X @ Y ) ) ) ).
thf(two_ax,definition,
( two
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ Y ) ) ) ) ).
thf(three_ax,definition,
( three
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ Y ) ) ) ) ) ).
thf(four_ax,definition,
( four
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ).
thf(five_ax,definition,
( five
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ).
thf(six_ax,definition,
( six
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ) ).
thf(seven_ax,definition,
( seven
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ) ) ).
thf(eight_ax,definition,
( eight
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ) ) ) ).
thf(nine_ax,definition,
( nine
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ) ) ) ) ).
thf(ten_ax,definition,
( ten
= ( ^ [X: $i > $i,Y: $i] : ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ ( X @ Y ) ) ) ) ) ) ) ) ) ) ) ) ).
thf(succ_ax,definition,
( succ
= ( ^ [N: ( $i > $i ) > $i > $i,X: $i > $i,Y: $i] : ( X @ ( N @ X @ Y ) ) ) ) ).
thf(plus_ax,definition,
( plus
= ( ^ [M: ( $i > $i ) > $i > $i,N: ( $i > $i ) > $i > $i,X: $i > $i,Y: $i] : ( M @ X @ ( N @ X @ Y ) ) ) ) ).
thf(mult_ax,definition,
( mult
= ( ^ [M: ( $i > $i ) > $i > $i,N: ( $i > $i ) > $i > $i,X: $i > $i,Y: $i] : ( M @ ( N @ X ) @ Y ) ) ) ).
%------------------------------------------------------------------------------
./NUM007^0.ax
Very long 1402
./NUM007^1.ax
Very long 3304
./NUM007^2.ax
Very long 1969
./NUM007^3.ax
Very long 2591
./NUM007^4.ax
Very long 2769
./NUM008+0.ax
%------------------------------------------------------------------------------
% File : NUM008+0 : TPTP v8.2.0. Released v7.3.0.
% Domain : Number Theory
% Axioms : Robinson arithmetic with equality
% Version : Especial.
% English :
% Refs : [BBJ03] Boolos et al. (2003), Computability and Logic
% : [Smi07] Smith (2007), An Introduction to Goedel's Theorems
% : [Lam18] Lampert (2018), Email to Geoff Sutcliffe
% Source : [Lam18]
% Names :
% Status : Satisfiable
% Rating : ? v7.3.0
% Syntax : Number of formulae : 11 ( 0 unt; 0 def)
% Number of atoms : 44 ( 17 equ)
% Maximal formula atoms : 5 ( 4 avg)
% Number of connectives : 47 ( 14 ~; 10 |; 23 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 7 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 43 ( 23 !; 20 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(axiom_1,axiom,
? [Y24] :
! [X19] :
( ( ~ r1(X19)
& X19 != Y24 )
| ( r1(X19)
& X19 = Y24 ) ) ).
fof(axiom_2,axiom,
! [X11] :
? [Y21] :
! [X12] :
( ( ~ r2(X11,X12)
& X12 != Y21 )
| ( r2(X11,X12)
& X12 = Y21 ) ) ).
fof(axiom_3,axiom,
! [X13,X14] :
? [Y22] :
! [X15] :
( ( ~ r3(X13,X14,X15)
& X15 != Y22 )
| ( r3(X13,X14,X15)
& X15 = Y22 ) ) ).
fof(axiom_4,axiom,
! [X16,X17] :
? [Y23] :
! [X18] :
( ( ~ r4(X16,X17,X18)
& X18 != Y23 )
| ( r4(X16,X17,X18)
& X18 = Y23 ) ) ).
%Axioms of Q
fof(axiom_1a,axiom,
! [X1,X8] :
? [Y4] :
( ? [Y5] :
( ? [Y15] :
( r2(X8,Y15)
& r3(X1,Y15,Y5) )
& Y5 = Y4 )
& ? [Y7] :
( r2(Y7,Y4)
& r3(X1,X8,Y7) ) ) ).
fof(axiom_2a,axiom,
! [X2,X9] :
? [Y2] :
( ? [Y3] :
( ? [Y14] :
( r2(X9,Y14)
& r4(X2,Y14,Y3) )
& Y3 = Y2 )
& ? [Y6] :
( r3(Y6,X2,Y2)
& r4(X2,X9,Y6) ) ) ).
fof(axiom_3a,axiom,
! [X3,X10] :
( ! [Y12] :
( ! [Y13] :
( ~ r2(X3,Y13)
| Y13 != Y12 )
| ~ r2(X10,Y12) )
| X3 = X10 ) ).
fof(axiom_4a,axiom,
! [X4] :
? [Y9] :
( ? [Y16] :
( r1(Y16)
& r3(X4,Y16,Y9) )
& Y9 = X4 ) ).
fof(axiom_5a,axiom,
! [X5] :
? [Y8] :
( ? [Y17] :
( r1(Y17)
& r4(X5,Y17,Y8) )
& ? [Y18] :
( r1(Y18)
& Y8 = Y18 ) ) ).
fof(axiom_6a,axiom,
! [X6] :
( ? [Y19] :
( r1(Y19)
& X6 = Y19 )
| ? [Y1,Y11] :
( r2(Y1,Y11)
& X6 = Y11 ) ) ).
fof(axiom_7a,axiom,
! [X7,Y10] :
( ! [Y20] :
( ~ r1(Y20)
| Y20 != Y10 )
| ~ r2(X7,Y10) ) ).
%------------------------------------------------------------------------------
./NUM009+0.ax
%------------------------------------------------------------------------------
% File : NUM009+0 : TPTP v8.2.0. Released v7.3.0.
% Domain : Number Theory
% Axioms : Robinson arithmetic without equality
% Version : Especial.
% English :
% Refs : [BBJ03] Boolos et al. (2003), Computability and Logic
% : [Smi07] Smith (2007), An Introduction to Goedel's Theorems
% : [Lam18] Lampert (2018), Email to Geoff Sutcliffe
% Source : [Lam18]
% Names :
% Status : Satisfiable
% Rating : ? v7.3.0
% Syntax : Number of formulae : 18 ( 1 unt; 0 def)
% Number of atoms : 75 ( 0 equ)
% Maximal formula atoms : 7 ( 4 avg)
% Number of connectives : 91 ( 34 ~; 26 |; 31 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 8 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 5 ( 5 usr; 0 prp; 1-3 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 67 ( 47 !; 20 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(axiom_1,axiom,
? [Y24] :
! [X19] :
( ( id(X19,Y24)
& r1(X19) )
| ( ~ r1(X19)
& ~ id(X19,Y24) ) ) ).
fof(axiom_2,axiom,
! [X11] :
? [Y21] :
! [X12] :
( ( id(X12,Y21)
& r2(X11,X12) )
| ( ~ r2(X11,X12)
& ~ id(X12,Y21) ) ) ).
fof(axiom_3,axiom,
! [X13,X14] :
? [Y22] :
! [X15] :
( ( id(X15,Y22)
& r3(X13,X14,X15) )
| ( ~ r3(X13,X14,X15)
& ~ id(X15,Y22) ) ) ).
fof(axiom_4,axiom,
! [X16,X17] :
? [Y23] :
! [X18] :
( ( id(X18,Y23)
& r4(X16,X17,X18) )
| ( ~ r4(X16,X17,X18)
& ~ id(X18,Y23) ) ) ).
fof(axiom_5,axiom,
! [X20] : id(X20,X20) ).
fof(axiom_6,axiom,
! [X21,X22] :
( ~ id(X21,X22)
| id(X22,X21) ) ).
fof(axiom_7,axiom,
! [X23,X24,X25] :
( ~ id(X23,X24)
| id(X23,X25)
| ~ id(X24,X25) ) ).
fof(axiom_8,axiom,
! [X26,X27] :
( ~ id(X26,X27)
| ( ~ r1(X26)
& ~ r1(X27) )
| ( r1(X26)
& r1(X27) ) ) ).
fof(axiom_9,axiom,
! [X28,X29,X30,X31] :
( ~ id(X28,X30)
| ~ id(X29,X31)
| ( ~ r2(X28,X29)
& ~ r2(X30,X31) )
| ( r2(X28,X29)
& r2(X30,X31) ) ) ).
fof(axiom_10,axiom,
! [X32,X33,X34,X35,X36,X37] :
( ~ id(X32,X35)
| ~ id(X33,X36)
| ~ id(X34,X37)
| ( ~ r3(X32,X33,X34)
& ~ r3(X35,X36,X37) )
| ( r3(X32,X33,X34)
& r3(X35,X36,X37) ) ) ).
fof(axiom_11,axiom,
! [X38,X39,X40,X41,X42,X43] :
( ~ id(X38,X41)
| ~ id(X39,X42)
| ~ id(X40,X43)
| ( ~ r4(X38,X39,X40)
& ~ r4(X41,X42,X43) )
| ( r4(X38,X39,X40)
& r4(X41,X42,X43) ) ) ).
%----Axioms of Q
fof(axiom_1a,axiom,
! [X1,X8] :
? [Y4] :
( ? [Y5] :
( id(Y5,Y4)
& ? [Y15] :
( r2(X8,Y15)
& r3(X1,Y15,Y5) ) )
& ? [Y7] :
( r2(Y7,Y4)
& r3(X1,X8,Y7) ) ) ).
fof(axiom_2a,axiom,
! [X2,X9] :
? [Y2] :
( ? [Y3] :
( id(Y3,Y2)
& ? [Y14] :
( r2(X9,Y14)
& r4(X2,Y14,Y3) ) )
& ? [Y6] :
( r3(Y6,X2,Y2)
& r4(X2,X9,Y6) ) ) ).
fof(axiom_3a,axiom,
! [X3,X10] :
( ! [Y12] :
( ! [Y13] :
( ~ id(Y13,Y12)
| ~ r2(X3,Y13) )
| ~ r2(X10,Y12) )
| id(X3,X10) ) ).
fof(axiom_4a,axiom,
! [X4] :
? [Y9] :
( id(Y9,X4)
& ? [Y16] :
( r1(Y16)
& r3(X4,Y16,Y9) ) ) ).
fof(axiom_5a,axiom,
! [X5] :
? [Y8] :
( ? [Y17] :
( r1(Y17)
& r4(X5,Y17,Y8) )
& ? [Y18] :
( id(Y8,Y18)
& r1(Y18) ) ) ).
fof(axiom_6a,axiom,
! [X6] :
( ? [Y19] :
( id(X6,Y19)
& r1(Y19) )
| ? [Y1,Y11] :
( id(X6,Y11)
& r2(Y1,Y11) ) ) ).
fof(axiom_7a,axiom,
! [X7,Y10] :
( ! [Y20] :
( ~ id(Y20,Y10)
| ~ r1(Y20) )
| ~ r2(X7,Y10) ) ).
%------------------------------------------------------------------------------
Philosophy
./PHI001^0.ax
%------------------------------------------------------------------------------
% File : PHI001^0 : TPTP v8.2.0. Released v6.1.0.
% Domain : Philosophy
% Axioms : Axioms for Goedel's Ontological Proof of the Existence of God
% Version : [Ben13] axioms.
% English :
% Refs : [Ben13] Benzmueller (2009), Email to Geoff Sutcliffe
% Source : [Ben13]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 12 ( 3 unt; 4 typ; 3 def)
% Number of atoms : 49 ( 3 equ; 0 cnn)
% Maximal formula atoms : 10 ( 4 avg)
% Number of connectives : 61 ( 0 ~; 0 |; 0 &; 61 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 15 ( 5 avg; 61 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 29 ( 29 >; 0 *; 0 +; 0 <<)
% Number of symbols : 15 ( 14 usr; 10 con; 0-3 aty)
% Number of variables : 15 ( 15 ^ 0 !; 0 ?; 15 :)
% SPC : TH0_SAT_EQU
% Comments : Requires LCL016^0.ax
%------------------------------------------------------------------------------
%----Signature
thf(positive_tp,type,
positive: ( mu > $i > $o ) > $i > $o ).
thf(god_tp,type,
god: mu > $i > $o ).
%----Constant symbol for essence: ess
thf(essence_tp,type,
essence: ( mu > $i > $o ) > mu > $i > $o ).
%----Constant symbol for necessary existence: ne
thf(necessary_existence_tp,type,
necessary_existence: mu > $i > $o ).
%----A1: Either the property or its negation are positive, but not both.
%----(Remark: only the left to right is needed for proving T1)
thf(axA1,axiom,
( mvalid
@ ( mforall_indset
@ ^ [Phi: mu > $i > $o] :
( mequiv
@ ( positive
@ ^ [X: mu] : ( mnot @ ( Phi @ X ) ) )
@ ( mnot @ ( positive @ Phi ) ) ) ) ) ).
%----A2: A property necessarily implied by a positive property is positive.
thf(axA2,axiom,
( mvalid
@ ( mforall_indset
@ ^ [Phi: mu > $i > $o] :
( mforall_indset
@ ^ [Psi: mu > $i > $o] :
( mimplies
@ ( mand @ ( positive @ Phi )
@ ( mbox
@ ( mforall_ind
@ ^ [X: mu] : ( mimplies @ ( Phi @ X ) @ ( Psi @ X ) ) ) ) )
@ ( positive @ Psi ) ) ) ) ) ).
%----D1: A God-like being possesses all positive properties.
thf(defD1,definition,
( god
= ( ^ [X: mu] :
( mforall_indset
@ ^ [Phi: mu > $i > $o] : ( mimplies @ ( positive @ Phi ) @ ( Phi @ X ) ) ) ) ) ).
%----A3: The property of being God-like is positive.
thf(axA3,axiom,
mvalid @ ( positive @ god ) ).
%----A4: Positive properties are necessary positive properties.
thf(axA4,axiom,
( mvalid
@ ( mforall_indset
@ ^ [Phi: mu > $i > $o] : ( mimplies @ ( positive @ Phi ) @ ( mbox @ ( positive @ Phi ) ) ) ) ) ).
%----D2: An essence of an individual is a property possessed by it and
%----necessarily implying any of its properties.
thf(defD2,definition,
( essence
= ( ^ [Phi: mu > $i > $o,X: mu] :
( mand @ ( Phi @ X )
@ ( mforall_indset
@ ^ [Psi: mu > $i > $o] :
( mimplies @ ( Psi @ X )
@ ( mbox
@ ( mforall_ind
@ ^ [Y: mu] : ( mimplies @ ( Phi @ Y ) @ ( Psi @ Y ) ) ) ) ) ) ) ) ) ).
%----D3: Necessary existence of an entity is the exemplification of all its
%----essences.
thf(defD3,definition,
( necessary_existence
= ( ^ [X: mu] :
( mforall_indset
@ ^ [Phi: mu > $i > $o] :
( mimplies @ ( essence @ Phi @ X )
@ ( mbox
@ ( mexists_ind
@ ^ [Y: mu] : ( Phi @ Y ) ) ) ) ) ) ) ).
%----A5: Necessary existence is positive.
thf(axA5,axiom,
mvalid @ ( positive @ necessary_existence ) ).
%------------------------------------------------------------------------------
./PHI002+0.ax
%------------------------------------------------------------------------------
% File : PHI002+0 : TPTP v8.2.0. Released v7.4.0.
% Domain : Philosophy
% Axioms : Definitions for Spinoza's Ethics - the DAPI
% Version : [Hor19] axioms.
% English :
% Refs : [Hor19] Horner (2019), A Computationally Assisted Reconstructi
% [Hor20] Horner (2020), Email to Geoff Sutcliffe
% Source : [Hor20]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 10 ( 0 unt; 0 def)
% Number of atoms : 37 ( 0 equ)
% Maximal formula atoms : 6 ( 3 avg)
% Number of connectives : 27 ( 0 ~; 2 |; 13 &)
% ( 10 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 5 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 34 ( 34 usr; 0 prp; 1-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 16 ( 16 !; 0 ?)
% SPC : FOF_SAT_RFO_SEQ
% Comments :
%------------------------------------------------------------------------------
%----Definition I. Self-caused. By that which is self-caused, I mean that of
%----which the essence involves existence, or that of which the nature
%----conceivable as existent. Note that "or" in the "... or that of which the
%----nature ..." must be rendered as "&" to capture what Spinoza means.
fof(self_caused,axiom,
! [X] :
( selfCaused(X)
<=> ( essenceInvExistence(X)
& natureConcOnlyByExistence(X) ) ) ).
%----Definition II. Finite after its kind. A thing finite after its kind, when
%----it can be limited by another thing of the same nature.
fof(finite_after_its_kind,axiom,
! [X,Y] :
( finiteAfterItsKind(X)
<=> ( canBeLimitedBy(X,Y)
& sameKind(X,Y) ) ) ).
%----Definition III. Substance. By substance, I mean that which is in itself,
%----and is conceived through itself.
fof(substance,axiom,
! [X] :
( substance(X)
<=> ( inItself(X)
& conceivedThruItself(X) ) ) ).
%----Definition IV. Attribute. By attribute, I mean that which the intellect
%----perceives as constituting the essence of substance.
fof(attribute,axiom,
! [X] :
( attribute(X)
<=> intPercAsConstEssSub(X) ) ).
%----Definition V. Mode. By mode, I mean the modifications of substance, or
%----that which exists in, and is conceived through, something other than
%----itself.
fof(mode,axiom,
! [X,Y,Z] :
( mode(X)
<=> ( ( modification(X,Y)
& substance(Y) )
| ( existsIn(X,Z)
& conceivedThru(X,Z) ) ) ) ).
%----Definition VI. God. By God, I mean a being absolutely infinite.
fof(god,axiom,
! [X] :
( god(X)
<=> ( being(X)
& absolutelyInfinite(X) ) ) ).
%----Definition VI. Absolutely infinite. ... that is, a substance consisting
%----in infinite attributes, of which each expresses eternal and infinite
%----essentiality.
fof(absolutely_infinite,axiom,
! [X,Y] :
( absolutelyInfinite(X)
<=> ( substance(X)
& constInInfAttributes(X)
& ( attributeOf(Y,X)
=> ( expressesEternalEssentiality(Y)
& expressesInfiniteEssentiality(Y) ) ) ) ) ).
%----Definition VII. Free. That thing is called free, which exists solely by
%----the necessity of its own nature, and of which the action is determined
%----by itself alone.
fof(free,axiom,
! [X,Y] :
( free(X)
<=> ( existsOnlyByNecessityOfOwnNature(X)
& ( actionOf(Y,X)
=> determinedByItselfAlone(Y,X) ) ) ) ).
%----Definition VII. Necessary. ... that thing is necessary, or rather
%----constrained, which is by something external to itself to a fixed and
%----definite method of existence or action.
fof(necessary,axiom,
! [X,Y] :
( necessary(X)
<=> ( externalTo(Y,X)
& determinedByFixedMethod(X,Y)
& determinedByDefiniteMethod(X,Y)
& ( isMethodAction(Y)
| isMethodExistence(Y) ) ) ) ).
%----Definition VIII. Eternity. By eternity, I mean existence itself, in so
%----far as it is conceived necessarily to follow solely from the definition
%----of that which is eternal.
fof(eternity,axiom,
! [X] :
( eternity(X)
<=> existConcFollowFromDefEternal(X) ) ).
%------------------------------------------------------------------------------
./PHI002+1.ax
%------------------------------------------------------------------------------
% File : PHI002+1 : TPTP v8.2.0. Released v7.4.0.
% Domain : Philosophy
% Axioms : Axioms for Spinoza's Ethics - the DAPI
% Version : [Hor19] axioms.
% English :
% Refs : [Hor19] Horner (2019), A Computationally Assisted Reconstructi
% [Hor20] Horner (2020), Email to Geoff Sutcliffe
% Source : [Hor20]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 7 ( 0 unt; 0 def)
% Number of atoms : 24 ( 2 equ)
% Maximal formula atoms : 5 ( 3 avg)
% Number of connectives : 27 ( 10 ~; 2 |; 7 &)
% ( 2 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 6 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 17 ( 16 usr; 0 prp; 1-2 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 13 ( 13 !; 0 ?)
% SPC : FOF_SAT_RFO_SEQ
% Comments : Requires PHI002+0.ax
%------------------------------------------------------------------------------
%----Axiom I. Everything which exists, exists either in itself or in something
%----else.
fof(exists,axiom,
! [X,Y] :
( exists(X)
<=> ( existsIn(X,X)
| ( existsIn(X,Y)
& X != Y ) ) ) ).
%----Axiom II. That which cannot be conceived through itself must be conceived
%----through something else.
fof(conceived_through,axiom,
! [X,Y] :
( ~ conceivedThru(X,X)
=> ( conceivedThru(X,Y)
& X != Y ) ) ).
%----Axiom III. From a given definite cause an effect necessarily follows;
%----and, on the other hand, if no definite cause be granted, it is impossible
%----that an effect can follow.
fof(definite_cause,axiom,
! [X,Y] :
( definiteCause(X)
=> ( effectNecessarilyFollowsFrom(Y,X)
& ( ~ definiteCause(X)
=> ~ effectNecessarilyFollowsFrom(Y,X) ) ) ) ).
%----Axiom IV. The knowledge of an effect depends on and involves the knowledge
%----of a cause.
fof(knowledge_of_effect,axiom,
! [X,Y] :
( knowledgeOfEffect(X,Y)
<=> knowledgeOfACause(X) ) ).
%----Axiom V. Things which have nothing in common cannot be understood, the
%----one by the means of the other the one by means of the other; the
%----conception of one does not involve the conception of the other.
fof(have_nothing_in_common,axiom,
! [X,Y] :
( haveNothingInCommon(X,Y)
=> ( ~ canBeUnderstoodInTermsOf(X,Y)
& ~ canBeUnderstoodInTermsOf(Y,X)
& ~ conceptionInvolves(X,Y)
& ~ conceptionInvolves(Y,X) ) ) ).
%----Axiom VI. A true idea must correspond with its ideate or object.
fof(true_idea,axiom,
! [X,Y] :
( trueIdea(X)
=> ( correspondWith(X,Y)
& ( ideateOf(Y,X)
| objectOf(Y,X) ) ) ) ).
%----Axiom VII. If a thing can be conceived as non-existing, its essence does
%----not involve its existence.
fof(can_be_conceived_as_non_existing,axiom,
! [X] :
( canBeConceivedAsNonExisting(X)
=> ~ essenceInvExistence(X) ) ).
%------------------------------------------------------------------------------
Planning
./PLA001-0.ax
%--------------------------------------------------------------------------
% File : PLA001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Planning (Blocks world)
% Axioms : Blocks world axioms
% Version : [SE94] axioms.
% English :
% Refs : [Sus73] Sussman (1973), A Computational Model of Skill Acquisi
% : [SE94] Segre & Elkan (1994), A High-Performance Explanation-B
% Source : [SE94]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 10 ( 0 unt; 0 nHn; 8 RR)
% Number of literals : 31 ( 0 equ; 21 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 9 ( 9 usr; 2 con; 0-2 aty)
% Number of variables : 33 ( 3 sgn)
% SPC :
% Comments : The axioms are a reconstruction of the situation calculus
% blocks world as in [Sus73].
%--------------------------------------------------------------------------
cnf(and_definition,axiom,
( holds(and(X,Y),State)
| ~ holds(X,State)
| ~ holds(Y,State) ) ).
cnf(pickup_1,axiom,
( holds(holding(X),do(pickup(X),State))
| ~ holds(empty,State)
| ~ holds(clear(X),State)
| ~ differ(X,table) ) ).
cnf(pickup_2,axiom,
( holds(clear(Y),do(pickup(X),State))
| ~ holds(on(X,Y),State)
| ~ holds(clear(X),State)
| ~ holds(empty,State) ) ).
cnf(pickup_3,axiom,
( holds(on(X,Y),do(pickup(Z),State))
| ~ holds(on(X,Y),State)
| ~ differ(X,Z) ) ).
cnf(pickup_4,axiom,
( holds(clear(X),do(pickup(Z),State))
| ~ holds(clear(X),State)
| ~ differ(X,Z) ) ).
cnf(putdown_1,axiom,
( holds(empty,do(putdown(X,Y),State))
| ~ holds(holding(X),State)
| ~ holds(clear(Y),State) ) ).
cnf(putdown_2,axiom,
( holds(on(X,Y),do(putdown(X,Y),State))
| ~ holds(holding(X),State)
| ~ holds(clear(Y),State) ) ).
cnf(putdown_3,axiom,
( holds(clear(X),do(putdown(X,Y),State))
| ~ holds(holding(X),State)
| ~ holds(clear(Y),State) ) ).
cnf(putdown_4,axiom,
( holds(on(X,Y),do(putdown(Z,W),State))
| ~ holds(on(X,Y),State) ) ).
cnf(putdown_5,axiom,
( holds(clear(Z),do(putdown(X,Y),State))
| ~ holds(clear(Z),State)
| ~ differ(Z,Y) ) ).
%--------------------------------------------------------------------------
./PLA001-1.ax
%--------------------------------------------------------------------------
% File : PLA001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Planning (Blocks world)
% Axioms : Blocks world difference axioms for 4 blocks
% Version : [SE94] axioms.
% English :
% Refs : [Sus73] Sussman (1973), A Computational Model of Skill Acquisi
% : [SE94] Segre & Elkan (1994), A High-Performance Explanation-B
% Source : [SE94]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 20 ( 19 unt; 0 nHn; 19 RR)
% Number of literals : 21 ( 0 equ; 1 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 9 ( 9 usr; 7 con; 0-2 aty)
% Number of variables : 3 ( 1 sgn)
% SPC :
% Comments : Requires PLA001-0.ax
% : The axioms are a reconstruction of the situation calculus
% blocks world as in [Sus73].
%--------------------------------------------------------------------------
cnf(symmetry_of_differ,axiom,
( differ(X,Y)
| ~ differ(Y,X) ) ).
cnf(differ_a_b,axiom,
differ(a,b) ).
cnf(differ_a_c,axiom,
differ(a,c) ).
cnf(differ_a_d,axiom,
differ(a,d) ).
cnf(differ_a_table,axiom,
differ(a,table) ).
cnf(differ_b_c,axiom,
differ(b,c) ).
cnf(differ_b_d,axiom,
differ(b,d) ).
cnf(differ_b_table,axiom,
differ(b,table) ).
cnf(differ_c_d,axiom,
differ(c,d) ).
cnf(differ_c_table,axiom,
differ(c,table) ).
cnf(differ_d_table,axiom,
differ(d,table) ).
%----Initial configuration
cnf(initial_state1,axiom,
holds(on(a,table),s0) ).
cnf(initial_state2,axiom,
holds(on(b,table),s0) ).
cnf(initial_state3,axiom,
holds(on(c,d),s0) ).
cnf(initial_state4,axiom,
holds(on(d,table),s0) ).
cnf(initial_state5,axiom,
holds(clear(a),s0) ).
cnf(initial_state6,axiom,
holds(clear(b),s0) ).
cnf(initial_state7,axiom,
holds(clear(c),s0) ).
cnf(initial_state8,axiom,
holds(empty,s0) ).
%----Table is always clear
cnf(clear_table,axiom,
holds(clear(table),State) ).
%--------------------------------------------------------------------------
./PLA002+0.ax
%--------------------------------------------------------------------------
% File : PLA002+0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Planning (Blocks world)
% Axioms : Blocks world axioms
% Version : [Bau99] axioms.
% English :
% Refs : [Bau99] Baumgartner (1999), FTP'2000 - Problem Sets
% [KS96] Kautz & Selman (1996), Pushing the Envelope: Planning,
% [KS92] Kautz & Selman (1992), Planning as Satisfiability
% Source : [Bau99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 24 ( 0 unt; 0 def)
% Number of atoms : 119 ( 0 equ)
% Maximal formula atoms : 8 ( 4 avg)
% Number of connectives : 120 ( 25 ~; 0 |; 43 &)
% ( 0 <=>; 52 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 8 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 10 ( 10 usr; 0 prp; 1-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 64 ( 64 !; 0 ?)
% SPC :
% Comments :
%--------------------------------------------------------------------------
% blocks_axioms:
fof(place_object_block_on_destination,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Z] :
( ( a_block(Z)
& neq(X,Z) )
=> ( ( time(I)
& object(X,I)
& destination(Z,I) )
=> on(X,Z,s(I)) ) ) ) ).
% All( x, block, ! member( x, fixed),
% All( y, block, ! eql( x, y),
% Disj(
% Not( L2("object", x, i));
% Not( L2("source", y, i));
% Not( L3("on", x, y, 1 + i)))));
fof(remove_object_block_from_source,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Y] :
( ( a_block(Y)
& neq(X,Y) )
=> ( ( time(I)
& object(X,I)
& source(Y,I) )
=> ~ on(X,Y,s(I)) ) ) ) ).
% All( y, block, ! member( y, fixed),
% Disj(
% Not( L2("source", y, i));
% L2("clear", y, 1 + i);
% ));
fof(clear_source_after_removal,axiom,
! [I,Y] :
( nonfixed(Y)
=> ( ( time(I)
& source(Y,I) )
=> clear(Y,s(I)) ) ) ).
% All( z, block, ! member( z, fixed),
% Disj(
% Not( L2("destination", z, i));
% Not( L2("clear", z, 1 + i))));
fof(not_clear_destination_after_placement,axiom,
! [I,Z] :
( nonfixed(Z)
=> ( ( time(I)
& destination(Z,I) )
=> ~ clear(Z,s(I)) ) ) ).
fof(object_block_on_source,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Y] :
( ( a_block(Y)
& neq(X,Y) )
=> ( ( object(X,I)
& source(Y,I) )
=> on(X,Y,I) ) ) ) ).
% All( x, block, ! member( x, fixed),
% Disj(
% Not( L2("object", x, i));
% L2("clear", x, i)));
fof(object_block_is_clear,axiom,
! [I,X] :
( nonfixed(X)
=> ( object(X,I)
=> clear(X,I) ) ) ).
% All( z, block, ! member( z, fixed),
% Disj(
% Not( L2("destination", z, i));
% L2("clear", z, i)));
fof(destination_block_is_clear,axiom,
! [I,Z] :
( nonfixed(Z)
=> ( destination(Z,I)
=> clear(Z,I) ) ) ).
fof(non_destination_remains_clear,axiom,
! [I,W] :
( nonfixed(W)
=> ( ( time(I)
& ~ destination(W,I)
& clear(W,I) )
=> clear(W,s(I)) ) ) ).
% All( v, block, ! member( v, fixed),
% All( w, block, !eql( v, w),
% Disj(
% L2("object", v, i);
% Not( L3("on", v, w, i)) ;
% L3("on", v, w, 1 + i))));
fof(non_object_remains_on,axiom,
! [I,V] :
( nonfixed(V)
=> ! [W] :
( ( a_block(W)
& neq(V,W) )
=> ( ( time(I)
& ~ object(V,I)
& on(V,W,I) )
=> on(V,W,s(I)) ) ) ) ).
fof(non_source_remains_not_clear,axiom,
! [I,W] :
( nonfixed(W)
=> ( ( time(I)
& ~ source(W,I)
& ~ clear(W,I) )
=> ~ clear(W,s(I)) ) ) ).
% All( v, block, ! member( v, fixed),
% All( w, block, ! eql( v, w),
% Disj(
% L2("object", v, i);
% L3("on", v, w, i) ;
% Not( L3("on", v, w, 1 + i)))));
fof(non_object_remains_not_on,axiom,
! [I,V] :
( nonfixed(V)
=> ! [W] :
( ( a_block(W)
& neq(V,W) )
=> ( ( time(I)
& ~ object(V,I)
& ~ on(V,W,I) )
=> ~ on(V,W,s(I)) ) ) ) ).
% All( v, block, ! member( v, fixed),
% All( w, block, ! eql( v, w),
% Disj(
% L2("destination", w, i);
% L3("on", v, w, i);
% Not( L3("on", v, w, 1 + i)))));
fof(non_destination_remains_not_on,axiom,
! [I,V] :
( nonfixed(V)
=> ! [W] :
( ( a_block(W)
& neq(V,W) )
=> ( ( time(I)
& ~ destination(W,I)
& ~ on(V,W,I) )
=> ~ on(V,W,s(I)) ) ) ) ).
fof(only_one_object_block,axiom,
! [I,X1] :
( nonfixed(X1)
=> ! [X2] :
( ( a_block(X2)
& neq(X1,X2) )
=> ~ ( object(X1,I)
& object(X2,I) ) ) ) ).
% All( y1, block, 1,
% All( y2, block, ! eql( y1, y2),
% Disj(
% Not( L2("source", y1, i));
% Not( L2("source", y2, i)))));
fof(only_one_source_block,axiom,
! [I,Y1] :
( a_block(Y1)
=> ! [Y2] :
( ( a_block(Y2)
& neq(Y1,Y2) )
=> ~ ( source(Y1,I)
& source(Y2,I) ) ) ) ).
% All( z1, block, 1,
% All( z2, block, ! eql( z1, z2),
% Disj(
% Not( L2("destination", z1, i));
% Not( L2("destination", z2, i)))));
fof(only_one_destination_block,axiom,
! [I,Z1] :
( a_block(Z1)
=> ! [Z2] :
( ( a_block(Z2)
& neq(Z1,Z2) )
=> ~ ( destination(Z1,I)
& destination(Z2,I) ) ) ) ).
fof(object_is_not_source,axiom,
! [I,X] :
( nonfixed(X)
=> ~ ( object(X,I)
& source(X,I) ) ) ).
% All( x, block, ! member( x, fixed),
% Disj(
% Not( L2("object", x, i));
% Not( L2("destination", x, i))));
fof(object_is_not_destination,axiom,
! [I,X] :
( nonfixed(X)
=> ~ ( object(X,I)
& destination(X,I) ) ) ).
% All( y, block, y,
% Disj(
% Not( L2("source", y, i));
% Not( L2("destination", y, i))));
fof(source_is_not_destination,axiom,
! [I,Y] :
( a_block(Y)
=> ~ ( source(Y,I)
& destination(Y,I) ) ) ).
%% on_axioms:
fof(not_on_each_other,axiom,
! [I,X] :
( a_block(X)
=> ! [Y] :
( ( a_block(Y)
& neq(X,Y) )
=> ~ ( on(X,Y,I)
& on(Y,X,I) ) ) ) ).
fof(not_on_self,axiom,
! [I,X] :
( a_block(X)
=> ~ on(X,X,I) ) ).
fof(only_one_on,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Y] :
( ( nonfixed(Y)
& neq(X,Y) )
=> ! [Z] :
( ( nonfixed(Z)
& neq(X,Z)
& neq(Y,Z) )
=> ~ ( on(X,Y,I)
& on(Z,Y,I) ) ) ) ) ).
fof(only_on_one_thing,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Y] :
( ( a_block(Y)
& neq(X,Y) )
=> ! [Z] :
( ( a_block(Z)
& neq(X,Z)
& neq(Y,Z) )
=> ~ ( on(X,Y,I)
& on(X,Z,I) ) ) ) ) ).
fof(not_clear_if_something_on,axiom,
! [I,X] :
( nonfixed(X)
=> ! [Y] :
( nonfixed(Y)
=> ~ ( on(X,Y,I)
& clear(Y,I) ) ) ) ).
fof(fixed_not_on_anything,axiom,
! [I,X] :
( a_block(X)
=> ! [Y] :
( fixed(Y)
=> ~ on(Y,X,I) ) ) ).
%--------------------------------------------------------------------------
./PRD001+0.ax
Very long 7340
Puzzles
./PUZ001-0.ax
%------------------------------------------------------------------------------
% File : PUZ001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Puzzles (Mars and Venus)
% Axioms : Mars and Venus axioms
% Version :
% English :
% Refs : [Rap95] Raptis (1995), Email to G. Sutcliffe
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 16 ( 0 unt; 4 nHn; 12 RR)
% Number of literals : 39 ( 1 equ; 23 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 0 prp; 1-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 20 ( 1 sgn)
% SPC :
% Comments : [Rap95] has pointed out that the clause
% statements_are_true_or_not is a tautology. Does your ATP
% system ignore it?
%------------------------------------------------------------------------------
%----Everyone's either from Mars or Venus, male or female, and statements
%----are true or false
cnf(from_mars_or_venus,axiom,
( from_mars(X)
| from_venus(X) ) ).
cnf(not_from_mars_and_venus,axiom,
( ~ from_mars(X)
| ~ from_venus(X) ) ).
cnf(male_or_female,axiom,
( male(X)
| female(X) ) ).
cnf(not_male_and_female,axiom,
( ~ male(X)
| ~ female(X) ) ).
cnf(truthteller_or_liar,axiom,
( truthteller(X)
| liar(X) ) ).
cnf(not_truthteller_and_liar,axiom,
( ~ truthteller(X)
| ~ liar(X) ) ).
%----Rules about statements
cnf(statements_are_true_or_not,axiom,
( ~ says(X,Y)
| a_truth(Y)
| ~ a_truth(Y) ) ).
cnf(people_say_their_statements,axiom,
( ~ says(X,Y)
| Y = statement_by(X) ) ).
cnf(true_statements_made_by_truthtellers,axiom,
( ~ a_truth(statement_by(X))
| truthteller(X) ) ).
cnf(false_statements_made_by_liars,axiom,
( a_truth(statement_by(X))
| liar(X) ) ).
%----Who's a liar, who's not
cnf(venusian_female_are_truthtellers,axiom,
( ~ from_venus(X)
| ~ female(X)
| truthteller(X) ) ).
cnf(venusian_males_are_liars,axiom,
( ~ from_venus(X)
| ~ male(X)
| liar(X) ) ).
cnf(marsian_males_are_truthtellers,axiom,
( ~ from_mars(X)
| ~ male(X)
| truthteller(X) ) ).
cnf(marsian_females_are_liars,axiom,
( ~ from_mars(X)
| ~ female(X)
| liar(X) ) ).
%----what truthtellers say is true, what liars say is false, what
%----truthtellers say is true, what liars say is false
cnf(truthtellers_make_true_statements,axiom,
( ~ truthteller(X)
| ~ says(X,Y)
| a_truth(Y) ) ).
cnf(liars_make_false_statements,axiom,
( ~ liar(X)
| ~ says(X,Y)
| ~ a_truth(Y) ) ).
%------------------------------------------------------------------------------
./PUZ002-0.ax
%--------------------------------------------------------------------------
% File : PUZ002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Puzzles (Truthtellers and Liars)
% Axioms : Truthtellers and Liars axioms for two types of people
% Version : [LO85] axioms.
% English : Axioms for two types of people; truthtellers and liars.
% Refs : [Smu78] Smullyan (1978), What is the name of this book?-The ri
% : [LO85] Lusk & Overbeek (1985), Non-Horn Problems
% Source : [LO85]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 2 nHn; 5 RR)
% Number of literals : 16 ( 0 equ; 10 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 1-1 aty)
% Number of functors : 3 ( 3 usr; 0 con; 1-2 aty)
% Number of variables : 10 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(truthteller_or_liar,axiom,
( a_truth(truthteller(X))
| a_truth(liar(X)) ) ).
cnf(not_both,axiom,
( ~ a_truth(truthteller(X))
| ~ a_truth(liar(X)) ) ).
cnf(truthtellers_tell_truth,axiom,
( ~ a_truth(truthteller(Truthteller))
| ~ a_truth(says(Truthteller,Statement))
| a_truth(Statement) ) ).
cnf(liars_lie,axiom,
( ~ a_truth(liar(Liar))
| ~ a_truth(says(Liar,Statement))
| ~ a_truth(Statement) ) ).
cnf(truths_are_told_by_truthtellers,axiom,
( ~ a_truth(Statement)
| ~ a_truth(says(Truthteller,Statement))
| a_truth(truthteller(Truthteller)) ) ).
cnf(liars_are_told_by_liars,axiom,
( a_truth(Statement)
| ~ a_truth(says(Liar,Statement))
| a_truth(liar(Liar)) ) ).
%--------------------------------------------------------------------------
./PUZ003-0.ax
%--------------------------------------------------------------------------
% File : PUZ003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Puzzles (Truthtellers and Liars)
% Axioms : Truthtellers and Liars axioms for three types of people
% Version : [ANL] axioms.
% English : Axioms for three types of people; truthtellers, liars and
% normal people.
% Refs : [Smu78] Smullyan (1978), What is the name of this book?-The ri
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 0 unt; 3 nHn; 7 RR)
% Number of literals : 23 ( 0 equ; 14 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 1-1 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 12 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%-----The next 4 clauses says that a person is one thing
cnf(person_is_one_type,axiom,
( a_truth(truthteller(X))
| a_truth(liar(X))
| a_truth(normal(X)) ) ).
cnf(not_truthteller_and_normal,axiom,
( ~ a_truth(truthteller(X))
| ~ a_truth(normal(X)) ) ).
cnf(not_truthteller_and_liar,axiom,
( ~ a_truth(truthteller(X))
| ~ a_truth(liar(X)) ) ).
cnf(not_liar_and_normal,axiom,
( ~ a_truth(liar(X))
| ~ a_truth(normal(X)) ) ).
cnf(truthtellers_tell_truth,axiom,
( ~ a_truth(truthteller(X))
| ~ a_truth(says(X,Y))
| a_truth(Y) ) ).
cnf(liars_lie,axiom,
( ~ a_truth(liar(X))
| ~ a_truth(says(X,Y))
| ~ a_truth(Y) ) ).
cnf(truthtellers_and_normal_tell_truth,axiom,
( ~ a_truth(X)
| ~ a_truth(says(Y,X))
| a_truth(truthteller(Y))
| a_truth(normal(Y)) ) ).
cnf(liars_and_normal_lie,axiom,
( a_truth(X)
| ~ a_truth(says(Y,X))
| a_truth(liar(Y))
| a_truth(normal(Y)) ) ).
%--------------------------------------------------------------------------
./PUZ004-0.ax
%------------------------------------------------------------------------------
% File : PUZ004-0 : TPTP v8.2.0. Released v2.4.0.
% Domain : Puzzles (Quo Vadis)
% Axioms : Quo vadis axioms
% Version :
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 41 ( 0 unt; 0 nHn; 41 RR)
% Number of literals : 82 ( 0 equ; 41 neg)
% Maximal clause size : 2 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 12-12 aty)
% Number of functors : 13 ( 13 usr; 0 con; 1-2 aty)
% Number of variables : 480 ( 0 sgn)
% SPC :
% Comments : Contributed by Christian Suttner
%------------------------------------------------------------------------------
cnf(s1_right,axiom,
( ~ state(B,V1,V2,V3,V4,H,s1(X,Y),S2,S3,S4,e1(X,s(Y)),E2)
| state(B,V1,V2,V3,V4,H,s1(X,s(Y)),S2,S3,S4,e1(X,Y),E2) ) ).
cnf(s1_left,axiom,
( ~ state(B,V1,V2,V3,V4,H,s1(X,s(Y)),S2,S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,s1(X,Y),S2,S3,S4,e1(X,s(Y)),E2) ) ).
cnf(s1_down,axiom,
( ~ state(B,V1,V2,V3,V4,H,s1(X,Y),S2,S3,S4,e1(s(X),Y),E2)
| state(B,V1,V2,V3,V4,H,s1(s(X),Y),S2,S3,S4,e1(X,Y),E2) ) ).
cnf(s1_up,axiom,
( ~ state(B,V1,V2,V3,V4,H,s1(s(X),Y),S2,S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,s1(X,Y),S2,S3,S4,e1(s(X),Y),E2) ) ).
cnf(s2_right,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,s2(X,Y),S3,S4,e1(X,s(Y)),E2)
| state(B,V1,V2,V3,V4,H,S1,s2(X,s(Y)),S3,S4,e1(X,Y),E2) ) ).
cnf(s2_left,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,s2(X,s(Y)),S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,s2(X,Y),S3,S4,e1(X,s(Y)),E2) ) ).
cnf(s2_down,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,s2(X,Y),S3,S4,e1(s(X),Y),E2)
| state(B,V1,V2,V3,V4,H,S1,s2(s(X),Y),S3,S4,e1(X,Y),E2) ) ).
cnf(s2_up,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,s2(s(X),Y),S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,s2(X,Y),S3,S4,e1(s(X),Y),E2) ) ).
cnf(s3_right,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,s3(X,Y),S4,e1(X,s(Y)),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,s3(X,s(Y)),S4,e1(X,Y),E2) ) ).
cnf(s3_left,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,s3(X,s(Y)),S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,s3(X,Y),S4,e1(X,s(Y)),E2) ) ).
cnf(s3_down,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,s3(X,Y),S4,e1(s(X),Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,s3(s(X),Y),S4,e1(X,Y),E2) ) ).
cnf(s3_up,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,s3(s(X),Y),S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,s3(X,Y),S4,e1(s(X),Y),E2) ) ).
cnf(s4_right,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,Y),e1(X,s(Y)),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,s(Y)),e1(X,Y),E2) ) ).
cnf(s4_left,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,s(Y)),e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,Y),e1(X,s(Y)),E2) ) ).
cnf(s4_down,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,Y),e1(s(X),Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(s(X),Y),e1(X,Y),E2) ) ).
cnf(s4_up,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(s(X),Y),e1(X,Y),E2)
| state(B,V1,V2,V3,V4,H,S1,S2,S3,s4(X,Y),e1(s(X),Y),E2) ) ).
cnf(v1_right,axiom,
( ~ state(B,v1(X,Y),V2,V3,V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y)))
| state(B,v1(X,s(Y)),V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y)) ) ).
cnf(v1_left,axiom,
( ~ state(B,v1(X,s(Y)),V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y))
| state(B,v1(X,Y),V2,V3,V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y))) ) ).
cnf(v1_down,axiom,
( ~ state(B,v1(X,Y),V2,V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2)
| state(B,v1(s(X),Y),V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),E2) ) ).
cnf(v1_up,axiom,
( ~ state(B,v1(s(X),Y),V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),E2)
| state(B,v1(X,Y),V2,V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2) ) ).
cnf(v2_right,axiom,
( ~ state(B,V1,v2(X,Y),V3,V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y)))
| state(B,V1,v2(X,s(Y)),V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y)) ) ).
cnf(v2_left,axiom,
( ~ state(B,V1,v2(X,s(Y)),V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y))
| state(B,V1,v2(X,Y),V3,V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y))) ) ).
cnf(v2_down,axiom,
( ~ state(B,V1,v2(X,Y),V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2)
| state(B,V1,v2(s(X),Y),V3,V4,H,S1,S2,S3,S4,e1(X,Y),E2) ) ).
cnf(v2_up,axiom,
( ~ state(B,V1,v2(s(X),Y),V3,V4,H,S1,S2,S3,S4,e1(X,Y),E2)
| state(B,V1,v2(X,Y),V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2) ) ).
cnf(v3_right,axiom,
( ~ state(B,V1,V2,v3(X,Y),V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y)))
| state(B,V1,V2,v3(X,s(Y)),V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y)) ) ).
cnf(v3_left,axiom,
( ~ state(B,V1,V2,v3(X,s(Y)),V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y))
| state(B,V1,V2,v3(X,Y),V4,H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y))) ) ).
cnf(v3_down,axiom,
( ~ state(B,V1,V2,v3(X,Y),V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2)
| state(B,V1,V2,v3(s(X),Y),V4,H,S1,S2,S3,S4,e1(X,Y),E2) ) ).
cnf(v3_up,axiom,
( ~ state(B,V1,V2,v3(s(X),Y),V4,H,S1,S2,S3,S4,e1(X,Y),E2)
| state(B,V1,V2,v3(X,Y),V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),E2) ) ).
cnf(v4_right,axiom,
( ~ state(B,V1,V2,V3,v4(X,Y),H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y)))
| state(B,V1,V2,V3,v4(X,s(Y)),H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y)) ) ).
cnf(v4_left,axiom,
( ~ state(B,V1,V2,V3,v4(X,s(Y)),H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y))
| state(B,V1,V2,V3,v4(X,Y),H,S1,S2,S3,S4,e1(X,s(Y)),e2(s(X),s(Y))) ) ).
cnf(v4_down,axiom,
( ~ state(B,V1,V2,V3,v4(X,Y),H,S1,S2,S3,S4,e1(s(s(X)),Y),E2)
| state(B,V1,V2,V3,v4(s(X),Y),H,S1,S2,S3,S4,e1(X,Y),E2) ) ).
cnf(v4_up,axiom,
( ~ state(B,V1,V2,V3,v4(s(X),Y),H,S1,S2,S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,v4(X,Y),H,S1,S2,S3,S4,e1(s(s(X)),Y),E2) ) ).
cnf(h_right,axiom,
( ~ state(B,V1,V2,V3,V4,h(X,Y),S1,S2,S3,S4,e1(X,s(s(Y))),E2)
| state(B,V1,V2,V3,V4,h(X,s(Y)),S1,S2,S3,S4,e1(X,Y),E2) ) ).
cnf(h_left,axiom,
( ~ state(B,V1,V2,V3,V4,h(X,s(Y)),S1,S2,S3,S4,e1(X,Y),E2)
| state(B,V1,V2,V3,V4,h(X,Y),S1,S2,S3,S4,e1(X,s(s(Y))),E2) ) ).
cnf(h_down,axiom,
( ~ state(B,V1,V2,V3,V4,h(X,Y),S1,S2,S3,S4,e1(s(X),Y),e2(s(X),s(Y)))
| state(B,V1,V2,V3,V4,h(s(X),Y),S1,S2,S3,S4,e1(X,Y),e2(X,s(Y))) ) ).
cnf(h_up,axiom,
( ~ state(B,V1,V2,V3,V4,h(s(X),Y),S1,S2,S3,S4,e1(X,Y),e2(X,s(Y)))
| state(B,V1,V2,V3,V4,h(X,Y),S1,S2,S3,S4,e1(s(X),Y),e2(s(X),s(Y))) ) ).
cnf(b_right,axiom,
( ~ state(bb(X,Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,s(s(Y))),e2(s(X),s(s(Y))))
| state(bb(X,s(Y)),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y)) ) ).
cnf(b_left,axiom,
( ~ state(bb(X,s(Y)),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(s(X),Y))
| state(bb(X,Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,s(s(Y))),e2(s(X),s(s(Y)))) ) ).
cnf(b_down,axiom,
( ~ state(bb(X,Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),e2(s(s(X)),s(Y)))
| state(bb(s(X),Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(X,s(Y))) ) ).
cnf(b_up,axiom,
( ~ state(bb(s(X),Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(X,s(Y)))
| state(bb(X,Y),V1,V2,V3,V4,H,S1,S2,S3,S4,e1(s(s(X)),Y),e2(s(s(X)),s(Y))) ) ).
cnf(swap_blanks,axiom,
( ~ state(B,V1,V2,V3,V4,H,S1,S2,S3,S4,e1(X,Y),e2(Q,W))
| state(B,V1,V2,V3,V4,H,S1,S2,S3,S4,e1(Q,W),e2(X,Y)) ) ).
%------------------------------------------------------------------------------
./PUZ005+0.ax
Very long 4664
./PUZ005-0.ax
%------------------------------------------------------------------------------
% File : PUZ005-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Puzzles (Sudoku)
% Axioms : Sudoku axioms
% Version : [Bau06] axioms : Especial.
% English :
% Refs : [Bau06] Baumgartner (2006), Email to G. Sutcliffe
% Source : [Bau06]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 79 ( 54 unt; 4 nHn; 79 RR)
% Number of literals : 161 ( 39 equ; 104 neg)
% Maximal clause size : 11 ( 2 avg)
% Maximal term depth : 10 ( 3 avg)
% Number of predicates : 4 ( 3 usr; 0 prp; 1-3 aty)
% Number of functors : 2 ( 2 usr; 1 con; 0-1 aty)
% Number of variables : 75 ( 0 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Regarding equality, (un)equality is syntactic (un)equality
%----The domain is the numbers from n1 to n9.
cnf(dom_1,axiom,
dom(s(n0)) ).
cnf(dom_2,axiom,
dom(s(s(n0))) ).
cnf(dom_3,axiom,
dom(s(s(s(n0)))) ).
cnf(dom_4,axiom,
dom(s(s(s(s(n0))))) ).
cnf(dom_5,axiom,
dom(s(s(s(s(s(n0)))))) ).
cnf(dom_6,axiom,
dom(s(s(s(s(s(s(n0))))))) ).
cnf(dom_7,axiom,
dom(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_8,axiom,
dom(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_9,axiom,
dom(s(s(s(s(s(s(s(s(s(n0)))))))))) ).
%----The domain elements are pairwise different;
%----This is the negative part of equality.
cnf(dom_1_not_2,axiom,
s(n0) != s(s(n0)) ).
cnf(dom_1_not_3,axiom,
s(n0) != s(s(s(n0))) ).
cnf(dom_1_not_4,axiom,
s(n0) != s(s(s(s(n0)))) ).
cnf(dom_1_not_5,axiom,
s(n0) != s(s(s(s(s(n0))))) ).
cnf(dom_1_not_6,axiom,
s(n0) != s(s(s(s(s(s(n0)))))) ).
cnf(dom_1_not_7,axiom,
s(n0) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_1_not_8,axiom,
s(n0) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_1_not_9,axiom,
s(n0) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_2_not_3,axiom,
s(s(n0)) != s(s(s(n0))) ).
cnf(dom_2_not_4,axiom,
s(s(n0)) != s(s(s(s(n0)))) ).
cnf(dom_2_not_5,axiom,
s(s(n0)) != s(s(s(s(s(n0))))) ).
cnf(dom_2_not_6,axiom,
s(s(n0)) != s(s(s(s(s(s(n0)))))) ).
cnf(dom_2_not_7,axiom,
s(s(n0)) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_2_not_8,axiom,
s(s(n0)) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_2_not_9,axiom,
s(s(n0)) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_3_not_4,axiom,
s(s(s(n0))) != s(s(s(s(n0)))) ).
cnf(dom_3_not_5,axiom,
s(s(s(n0))) != s(s(s(s(s(n0))))) ).
cnf(dom_3_not_6,axiom,
s(s(s(n0))) != s(s(s(s(s(s(n0)))))) ).
cnf(dom_3_not_7,axiom,
s(s(s(n0))) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_3_not_8,axiom,
s(s(s(n0))) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_3_not_9,axiom,
s(s(s(n0))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_4_not_5,axiom,
s(s(s(s(n0)))) != s(s(s(s(s(n0))))) ).
cnf(dom_4_not_6,axiom,
s(s(s(s(n0)))) != s(s(s(s(s(s(n0)))))) ).
cnf(dom_4_not_7,axiom,
s(s(s(s(n0)))) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_4_not_8,axiom,
s(s(s(s(n0)))) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_4_not_9,axiom,
s(s(s(s(n0)))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_5_not_6,axiom,
s(s(s(s(s(n0))))) != s(s(s(s(s(s(n0)))))) ).
cnf(dom_5_not_7,axiom,
s(s(s(s(s(n0))))) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_5_not_8,axiom,
s(s(s(s(s(n0))))) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_5_not_9,axiom,
s(s(s(s(s(n0))))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_6_not_7,axiom,
s(s(s(s(s(s(n0)))))) != s(s(s(s(s(s(s(n0))))))) ).
cnf(dom_6_not_8,axiom,
s(s(s(s(s(s(n0)))))) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_6_not_9,axiom,
s(s(s(s(s(s(n0)))))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_7_not_8,axiom,
s(s(s(s(s(s(s(n0))))))) != s(s(s(s(s(s(s(s(n0)))))))) ).
cnf(dom_7_not_9,axiom,
s(s(s(s(s(s(s(n0))))))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
cnf(dom_8_not_9,axiom,
s(s(s(s(s(s(s(s(n0)))))))) != s(s(s(s(s(s(s(s(s(n0))))))))) ).
%----Generator:
%----At least one number in each field
%----el(I,J,X) means on row I, column J is the natural number X
cnf(number_in_each_position,axiom,
( ~ dom(I)
| ~ dom(J)
| el(I,J,s(n0))
| el(I,J,s(s(n0)))
| el(I,J,s(s(s(n0))))
| el(I,J,s(s(s(s(n0)))))
| el(I,J,s(s(s(s(s(n0))))))
| el(I,J,s(s(s(s(s(s(n0)))))))
| el(I,J,s(s(s(s(s(s(s(n0))))))))
| el(I,J,s(s(s(s(s(s(s(s(n0)))))))))
| el(I,J,s(s(s(s(s(s(s(s(s(n0)))))))))) ) ).
%----Restriction:
%----No two same numbers on a field (dual of previous)
%----This is in fact redundant in combination of the previous generator and
%----already one of the following constraints
cnf(only_one_number_in_each_position,axiom,
( ~ el(I,J,X)
| ~ el(I,J,X1)
| X = X1 ) ).
%----Restriction:
%----No number occurs twice in a row:
%----(J = J1) :- el(I,J,X), el(I,J1,X1), (X = X1).
%----slightly simpler:
cnf(no_duplicates_in_a_row,axiom,
( ~ el(I,J,X)
| ~ el(I,J1,X)
| J = J1 ) ).
%----Restriction:
%----No number occurs twice in a column:
cnf(no_duplicates_in_a_column,axiom,
( ~ el(I,J,X)
| ~ el(I1,J,X)
| I = I1 ) ).
%----where different(I,J,I1,J1) means that the field elements at
%----(I,J) and at (I1,J1) are different
%---- different(I,J,I1,J1) ->
% ( el(I,J,X) & el(I1,J1,X1) -> -(X = X1)).
%----Now, the n3x3 subfields.
cnf(subfield_1_1,hypothesis,
subfield(s(n0),s(n0)) ).
cnf(subfield_1_4,hypothesis,
subfield(s(n0),s(s(s(s(n0))))) ).
cnf(subfield_1_7,hypothesis,
subfield(s(n0),s(s(s(s(s(s(s(n0)))))))) ).
cnf(subfield_4_1,hypothesis,
subfield(s(s(s(s(n0)))),s(n0)) ).
cnf(subfield_4_4,hypothesis,
subfield(s(s(s(s(n0)))),s(s(s(s(n0))))) ).
cnf(subfield_4_7,hypothesis,
subfield(s(s(s(s(n0)))),s(s(s(s(s(s(s(n0)))))))) ).
cnf(subfield_7_1,hypothesis,
subfield(s(s(s(s(s(s(s(n0))))))),s(n0)) ).
cnf(subfield_7_4,hypothesis,
subfield(s(s(s(s(s(s(s(n0))))))),s(s(s(s(n0))))) ).
cnf(subfield_7_7,hypothesis,
subfield(s(s(s(s(s(s(s(n0))))))),s(s(s(s(s(s(s(n0)))))))) ).
%----Each subfield contains no number twice:
%----Note: It is sufficient to specify only along the diagonals,
%----as along the row and columns the general row and column restrictions
%----above subsume the corresponding ones for the subfields.
%----Notice we do a little bit of integer arithmetic (+1 and +2) to talk
%----about the fields in a given subfield.
%----Perhaps more readable formulation of the axioms is like
%----subfield(I,J) ->
%---- ( el(I,J,X) & el(s(I),s(J),X1) -> -(X = X1)).
%----which translates to
cnf(subfield_diagonal_1,hypothesis,
( ~ subfield(I,J)
| ~ el(I,J,X)
| ~ el(s(I),s(J),X) ) ).
cnf(subfield_diagonal_2,hypothesis,
( ~ subfield(I,J)
| ~ el(I,J,X)
| ~ el(s(I),s(s(J)),X) ) ).
cnf(subfield_diagonal_3,hypothesis,
( ~ subfield(I,J)
| ~ el(I,J,X)
| ~ el(s(s(I)),s(J),X) ) ).
cnf(subfield_diagonal_4,hypothesis,
( ~ subfield(I,J)
| ~ el(I,J,X)
| ~ el(s(s(I)),s(s(J)),X) ) ).
cnf(subfield_diagonal_5,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(J),X)
| ~ el(s(I),J,X) ) ).
cnf(subfield_diagonal_6,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(J),X)
| ~ el(s(I),s(s(J)),X) ) ).
cnf(subfield_diagonal_7,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(J),X)
| ~ el(s(s(I)),J,X) ) ).
cnf(subfield_diagonal_8,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(J),X)
| ~ el(s(s(I)),s(s(J)),X) ) ).
cnf(subfield_diagonal_9,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(s(J)),X)
| ~ el(s(I),J,X) ) ).
cnf(subfield_diagonal_10,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(s(J)),X)
| ~ el(s(I),s(J),X) ) ).
cnf(subfield_diagonal_11,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(s(J)),X)
| ~ el(s(s(I)),J,X) ) ).
cnf(subfield_diagonal_12,hypothesis,
( ~ subfield(I,J)
| ~ el(I,s(s(J)),X)
| ~ el(s(s(I)),s(J),X) ) ).
cnf(subfield_diagonal_13,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),J,X)
| ~ el(s(s(I)),s(J),X) ) ).
cnf(subfield_diagonal_14,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),J,X)
| ~ el(s(s(I)),s(s(J)),X) ) ).
cnf(subfield_diagonal_15,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),s(J),X)
| ~ el(s(s(I)),J,X) ) ).
cnf(subfield_diagonal_16,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),s(J),X)
| ~ el(s(s(I)),s(s(J)),X) ) ).
cnf(subfield_diagonal_17,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),s(s(J)),X)
| ~ el(s(s(I)),J,X) ) ).
cnf(subfield_diagonal_18,hypothesis,
( ~ subfield(I,J)
| ~ el(s(I),s(s(J)),X)
| ~ el(s(s(I)),s(J),X) ) ).
%----Some additional constraints. They are redundant but help
%----to solve the Sudoku in a deterministic way quite often.
%----I think the underlying heuristics used by people is called
%----'crosshatching'.
%----In every subfield, every value must be put somewhere
cnf(value_somewhere_in_subfield,hypothesis,
( ~ subfield(I,J)
| ~ dom(X)
| el(I,J,X)
| el(I,s(J),X)
| el(I,s(s(J)),X)
| el(s(I),J,X)
| el(s(I),s(J),X)
| el(s(I),s(s(J)),X)
| el(s(s(I)),J,X)
| el(s(s(I)),s(J),X)
| el(s(s(I)),s(s(J)),X) ) ).
%----In every row, every value must be put somewhere
cnf(value_somewhere_in_row,hypothesis,
( ~ dom(I)
| ~ dom(X)
| el(I,s(n0),X)
| el(I,s(s(n0)),X)
| el(I,s(s(s(n0))),X)
| el(I,s(s(s(s(n0)))),X)
| el(I,s(s(s(s(s(n0))))),X)
| el(I,s(s(s(s(s(s(n0)))))),X)
| el(I,s(s(s(s(s(s(s(n0))))))),X)
| el(I,s(s(s(s(s(s(s(s(n0)))))))),X)
| el(I,s(s(s(s(s(s(s(s(s(n0))))))))),X) ) ).
%----In every column, every value must be put somewhere
cnf(value_somewhere_in_column,hypothesis,
( ~ dom(J)
| ~ dom(X)
| el(s(n0),J,X)
| el(s(s(n0)),J,X)
| el(s(s(s(n0))),J,X)
| el(s(s(s(s(n0)))),J,X)
| el(s(s(s(s(s(n0))))),J,X)
| el(s(s(s(s(s(s(n0)))))),J,X)
| el(s(s(s(s(s(s(s(n0))))))),J,X)
| el(s(s(s(s(s(s(s(s(n0)))))))),J,X)
| el(s(s(s(s(s(s(s(s(s(n0))))))))),J,X) ) ).
%------------------------------------------------------------------------------
./PUZ006+0.ax
Very long 44452
Quantales
./QUA001^0.ax
%------------------------------------------------------------------------------
% File : QUA001^0 : TPTP v8.2.0. Released v4.1.0.
% Domain : Quantales
% Axioms : Quantales
% Version : [Hoe09] axioms.
% English :
% Refs : [Con71] Conway (1971), Regular Algebra and Finite Machines
% : [Hoe09] Hoefner (2009), Email to Geoff Sutcliffe
% Source : [Hoe09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 26 ( 13 unt; 12 typ; 7 def)
% Number of atoms : 33 ( 17 equ; 0 cnn)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 43 ( 0 ~; 1 |; 4 &; 37 @)
% ( 1 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 2 avg; 37 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 43 ( 43 >; 0 *; 0 +; 0 <<)
% Number of symbols : 14 ( 12 usr; 3 con; 0-3 aty)
% Number of variables : 27 ( 15 ^ 8 !; 4 ?; 27 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Usual Definition of Set Theory
thf(emptyset_type,type,
emptyset: $i > $o ).
thf(emptyset_def,definition,
( emptyset
= ( ^ [X: $i] : $false ) ) ).
thf(union_type,type,
union: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(union_def,definition,
( union
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
thf(singleton_type,type,
singleton: $i > $i > $o ).
thf(singleton_def,definition,
( singleton
= ( ^ [X: $i,U: $i] : ( U = X ) ) ) ).
%----Supremum Definition
thf(zero_type,type,
zero: $i ).
thf(sup_type,type,
sup: ( $i > $o ) > $i ).
thf(sup_es,axiom,
( ( sup @ emptyset )
= zero ) ).
thf(sup_singleset,axiom,
! [X: $i] :
( ( sup @ ( singleton @ X ) )
= X ) ).
thf(supset_type,type,
supset: ( ( $i > $o ) > $o ) > $i > $o ).
thf(supset,definition,
( supset
= ( ^ [F: ( $i > $o ) > $o,X: $i] :
? [Y: $i > $o] :
( ( F @ Y )
& ( ( sup @ Y )
= X ) ) ) ) ).
thf(unionset_type,type,
unionset: ( ( $i > $o ) > $o ) > $i > $o ).
thf(unionset,definition,
( unionset
= ( ^ [F: ( $i > $o ) > $o,X: $i] :
? [Y: $i > $o] :
( ( F @ Y )
& ( Y @ X ) ) ) ) ).
thf(sup_set,axiom,
! [X: ( $i > $o ) > $o] :
( ( sup @ ( supset @ X ) )
= ( sup @ ( unionset @ X ) ) ) ).
%----Definition of binary sums and lattice order
thf(addition_type,type,
addition: $i > $i > $i ).
thf(addition_def,definition,
( addition
= ( ^ [X: $i,Y: $i] : ( sup @ ( union @ ( singleton @ X ) @ ( singleton @ Y ) ) ) ) ) ).
thf(order_type,type,
leq: $i > $i > $o ).
thf(order_def,axiom,
! [X1: $i,X2: $i] :
( ( leq @ X1 @ X2 )
<=> ( ( addition @ X1 @ X2 )
= X2 ) ) ).
%----Definition of multiplication
thf(multiplication_type,type,
multiplication: $i > $i > $i ).
thf(crossmult_type,type,
crossmult: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(crossmult_def,definition,
( crossmult
= ( ^ [X: $i > $o,Y: $i > $o,A: $i] :
? [X1: $i,Y1: $i] :
( ( X @ X1 )
& ( Y @ Y1 )
& ( A
= ( multiplication @ X1 @ Y1 ) ) ) ) ) ).
thf(multiplication_def,axiom,
! [X: $i > $o,Y: $i > $o] :
( ( multiplication @ ( sup @ X ) @ ( sup @ Y ) )
= ( sup @ ( crossmult @ X @ Y ) ) ) ).
thf(one_type,type,
one: $i ).
thf(multiplication_neutral_right,axiom,
! [X: $i] :
( ( multiplication @ X @ one )
= X ) ).
thf(multiplication_neutral_left,axiom,
! [X: $i] :
( ( multiplication @ one @ X )
= X ) ).
%------------------------------------------------------------------------------
./QUA001^1.ax
%------------------------------------------------------------------------------
% File : QUA001^1 : TPTP v8.2.0. Released v4.1.0.
% Domain : Quantales
% Axioms : Tests for Quantales (Boolean sub-algebra below 1)
% Version : [Hoe09] axioms.
% English :
% Refs : [Con71] Conway (1971), Regular Algebra and Finite Machines
% : [Koz97] Kozen (1997), Kleene Algebra with Tests
% : [Hoe09] Hoefner (2009), Email to Geoff Sutcliffe
% Source : [Hoe09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 0 unt; 1 typ; 0 def)
% Number of atoms : 10 ( 3 equ; 0 cnn)
% Maximal formula atoms : 4 ( 5 avg)
% Number of connectives : 10 ( 0 ~; 0 |; 2 &; 7 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 6 avg; 7 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 1 ( 1 >; 0 *; 0 +; 0 <<)
% Number of symbols : 6 ( 5 usr; 4 con; 0-2 aty)
% Number of variables : 2 ( 0 ^ 1 !; 1 ?; 2 :)
% SPC :
% Comments : Requires QUA001^0.ax
%------------------------------------------------------------------------------
thf(tests,type,
test: $i > $o ).
thf(test_definition,axiom,
! [X: $i] :
( ( test @ X )
=> ? [Y: $i] :
( ( ( addition @ X @ Y )
= one )
& ( ( multiplication @ X @ Y )
= zero )
& ( ( multiplication @ Y @ X )
= zero ) ) ) ).
%------------------------------------------------------------------------------
Relation Algebra
./REL001+0.ax
%------------------------------------------------------------------------------
% File : REL001+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Relation Algebra
% Axioms : Relation Algebra
% Version : [Hoe08] axioms.
% English :
% Refs : [Mad95] Maddux, R. (1995), Relation-algebraic semantics
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 13 ( 13 unt; 0 def)
% Number of atoms : 13 ( 13 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 3 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 8 ( 8 usr; 3 con; 0-2 aty)
% Number of variables : 25 ( 25 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Definition of Boolean algebra a la Maddux
fof(maddux1_join_commutativity,axiom,
! [X0,X1] : join(X0,X1) = join(X1,X0) ).
fof(maddux2_join_associativity,axiom,
! [X0,X1,X2] : join(X0,join(X1,X2)) = join(join(X0,X1),X2) ).
fof(maddux3_a_kind_of_de_Morgan,axiom,
! [X0,X1] : X0 = join(complement(join(complement(X0),complement(X1))),complement(join(complement(X0),X1))) ).
fof(maddux4_definiton_of_meet,axiom,
! [X0,X1] : meet(X0,X1) = complement(join(complement(X0),complement(X1))) ).
%----Definition of Sequential Composition
fof(composition_associativity,axiom,
! [X0,X1,X2] : composition(X0,composition(X1,X2)) = composition(composition(X0,X1),X2) ).
fof(composition_identity,axiom,
! [X0] : composition(X0,one) = X0 ).
fof(composition_distributivity,axiom,
! [X0,X1,X2] : composition(join(X0,X1),X2) = join(composition(X0,X2),composition(X1,X2)) ).
%----Definition of Converse
fof(converse_idempotence,axiom,
! [X0] : converse(converse(X0)) = X0 ).
fof(converse_additivity,axiom,
! [X0,X1] : converse(join(X0,X1)) = join(converse(X0),converse(X1)) ).
fof(converse_multiplicativity,axiom,
! [X0,X1] : converse(composition(X0,X1)) = composition(converse(X1),converse(X0)) ).
fof(converse_cancellativity,axiom,
! [X0,X1] : join(composition(converse(X0),complement(composition(X0,X1))),complement(X1)) = complement(X1) ).
%---Definition of Identities (greatest and smallest element)
fof(def_top,axiom,
! [X0] : top = join(X0,complement(X0)) ).
fof(def_zero,axiom,
! [X0] : zero = meet(X0,complement(X0)) ).
%------------------------------------------------------------------------------
./REL001+1.ax
%------------------------------------------------------------------------------
% File : REL001+1 : TPTP v8.2.0. Released v3.6.0.
% Domain : Relation Algebra
% Axioms : Dedkind and two modular laws
% Version : [Hoe08] axioms.
% English :
% Refs : [Mad95] Maddux, R. (1995), Relation-algebraic semantics
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 3 unt; 0 def)
% Number of atoms : 3 ( 3 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 4 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 9 ( 9 !; 0 ?)
% SPC :
% Comments : Requires REL001+0.ax
%------------------------------------------------------------------------------
%---Dedekind law
fof(dedekind_law,axiom,
! [X0,X1,X2] : join(meet(composition(X0,X1),X2),composition(meet(X0,composition(X2,converse(X1))),meet(X1,composition(converse(X0),X2)))) = composition(meet(X0,composition(X2,converse(X1))),meet(X1,composition(converse(X0),X2))) ).
%---modular laws
fof(modular_law_1,axiom,
! [X0,X1,X2] : join(meet(composition(X0,X1),X2),meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2)) = meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2) ).
fof(modular_law_2,axiom,
! [X0,X1,X2] : join(meet(composition(X0,X1),X2),meet(composition(meet(X0,composition(X2,converse(X1))),X1),X2)) = meet(composition(meet(X0,composition(X2,converse(X1))),X1),X2) ).
%------------------------------------------------------------------------------
./REL001-0.ax
%------------------------------------------------------------------------------
% File : REL001-0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Relation Algebra
% Axioms : Relation algebra
% Version : [Mad95] (equational) axioms.
% English :
% Refs : [Mad95] Maddux (1995), Relation-Algebraic Semantics
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Rating : ? v3.6.0
% Syntax : Number of clauses : 13 ( 13 unt; 0 nHn; 0 RR)
% Number of literals : 13 ( 13 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 8 ( 8 usr; 3 con; 0-2 aty)
% Number of variables : 25 ( 0 sgn)
% SPC :
% Comments : tptp2X -f tptp:short -t cnf:otter REL001+0.ax
%------------------------------------------------------------------------------
cnf(maddux1_join_commutativity_1,axiom,
join(A,B) = join(B,A) ).
cnf(maddux2_join_associativity_2,axiom,
join(A,join(B,C)) = join(join(A,B),C) ).
cnf(maddux3_a_kind_of_de_Morgan_3,axiom,
A = join(complement(join(complement(A),complement(B))),complement(join(complement(A),B))) ).
cnf(maddux4_definiton_of_meet_4,axiom,
meet(A,B) = complement(join(complement(A),complement(B))) ).
cnf(composition_associativity_5,axiom,
composition(A,composition(B,C)) = composition(composition(A,B),C) ).
cnf(composition_identity_6,axiom,
composition(A,one) = A ).
cnf(composition_distributivity_7,axiom,
composition(join(A,B),C) = join(composition(A,C),composition(B,C)) ).
cnf(converse_idempotence_8,axiom,
converse(converse(A)) = A ).
cnf(converse_additivity_9,axiom,
converse(join(A,B)) = join(converse(A),converse(B)) ).
cnf(converse_multiplicativity_10,axiom,
converse(composition(A,B)) = composition(converse(B),converse(A)) ).
cnf(converse_cancellativity_11,axiom,
join(composition(converse(A),complement(composition(A,B))),complement(B)) = complement(B) ).
cnf(def_top_12,axiom,
top = join(A,complement(A)) ).
cnf(def_zero_13,axiom,
zero = meet(A,complement(A)) ).
%------------------------------------------------------------------------------
./REL001-1.ax
%------------------------------------------------------------------------------
% File : REL001-1 : TPTP v8.2.0. Released v3.6.0.
% Domain : Relation Algebra
% Axioms : Dedkind and two modular laws
% Version : [Mad95] (equational) axioms : Augmented.
% English :
% Refs : [Mad95] Maddux (1995), Relation-Algebraic Semantics
% : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source : [Hoe08]
% Names :
% Status : Satisfiable
% Rating : ? v3.6.0
% Syntax : Number of clauses : 3 ( 3 unt; 0 nHn; 0 RR)
% Number of literals : 3 ( 3 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 0 con; 1-2 aty)
% Number of variables : 9 ( 0 sgn)
% SPC :
% Comments : tptp2X -f tptp:short -t cnf:otter REL001+1.ax
%------------------------------------------------------------------------------
cnf(dedekind_law_14,axiom,
join(meet(composition(A,B),C),composition(meet(A,composition(C,converse(B))),meet(B,composition(converse(A),C)))) = composition(meet(A,composition(C,converse(B))),meet(B,composition(converse(A),C))) ).
cnf(modular_law_1_15,axiom,
join(meet(composition(A,B),C),meet(composition(A,meet(B,composition(converse(A),C))),C)) = meet(composition(A,meet(B,composition(converse(A),C))),C) ).
cnf(modular_law_2_16,axiom,
join(meet(composition(A,B),C),meet(composition(meet(A,composition(C,converse(B))),B),C)) = meet(composition(meet(A,composition(C,converse(B))),B),C) ).
%------------------------------------------------------------------------------
Ring Theory
./RNG001-0.ax
%--------------------------------------------------------------------------
% File : RNG001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Ring Theory
% Axioms : Ring theory axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 17 ( 6 unt; 0 nHn; 11 RR)
% Number of literals : 50 ( 2 equ; 33 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 71 ( 0 sgn)
% SPC :
% Comments : These axioms are used in [Wos88] p.201.
%--------------------------------------------------------------------------
cnf(additive_identity1,axiom,
sum(additive_identity,X,X) ).
cnf(additive_identity2,axiom,
sum(X,additive_identity,X) ).
cnf(closure_of_multiplication,axiom,
product(X,Y,multiply(X,Y)) ).
cnf(closure_of_addition,axiom,
sum(X,Y,add(X,Y)) ).
cnf(left_inverse,axiom,
sum(additive_inverse(X),X,additive_identity) ).
cnf(right_inverse,axiom,
sum(X,additive_inverse(X),additive_identity) ).
cnf(associativity_of_addition1,axiom,
( ~ sum(X,Y,U)
| ~ sum(Y,Z,V)
| ~ sum(U,Z,W)
| sum(X,V,W) ) ).
cnf(associativity_of_addition2,axiom,
( ~ sum(X,Y,U)
| ~ sum(Y,Z,V)
| ~ sum(X,V,W)
| sum(U,Z,W) ) ).
cnf(commutativity_of_addition,axiom,
( ~ sum(X,Y,Z)
| sum(Y,X,Z) ) ).
cnf(associativity_of_multiplication1,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(U,Z,W)
| product(X,V,W) ) ).
cnf(associativity_of_multiplication2,axiom,
( ~ product(X,Y,U)
| ~ product(Y,Z,V)
| ~ product(X,V,W)
| product(U,Z,W) ) ).
cnf(distributivity1,axiom,
( ~ product(X,Y,V1)
| ~ product(X,Z,V2)
| ~ sum(Y,Z,V3)
| ~ product(X,V3,V4)
| sum(V1,V2,V4) ) ).
cnf(distributivity2,axiom,
( ~ product(X,Y,V1)
| ~ product(X,Z,V2)
| ~ sum(Y,Z,V3)
| ~ sum(V1,V2,V4)
| product(X,V3,V4) ) ).
cnf(distributivity3,axiom,
( ~ product(Y,X,V1)
| ~ product(Z,X,V2)
| ~ sum(Y,Z,V3)
| ~ product(V3,X,V4)
| sum(V1,V2,V4) ) ).
cnf(distributivity4,axiom,
( ~ product(Y,X,V1)
| ~ product(Z,X,V2)
| ~ sum(Y,Z,V3)
| ~ sum(V1,V2,V4)
| product(V3,X,V4) ) ).
%-----Equality axioms for operators
cnf(addition_is_well_defined,axiom,
( ~ sum(X,Y,U)
| ~ sum(X,Y,V)
| U = V ) ).
cnf(multiplication_is_well_defined,axiom,
( ~ product(X,Y,U)
| ~ product(X,Y,V)
| U = V ) ).
%--------------------------------------------------------------------------
./RNG002-0.ax
%--------------------------------------------------------------------------
% File : RNG002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Ring Theory
% Axioms : Ring theory (equality) axioms
% Version : [PS81] (equality) axioms :
% Reduced & Augmented > Complete.
% English :
% Refs : [PS81] Peterson & Stickel (1981), Complete Sets of Reductions
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 14 ( 14 unt; 0 nHn; 1 RR)
% Number of literals : 14 ( 14 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 25 ( 2 sgn)
% SPC :
% Comments : Not sure if these are complete. I don't know if the reductions
% given in [PS81] are suitable for ATP.
%--------------------------------------------------------------------------
%----Existence of left identity for addition
cnf(left_identity,axiom,
add(additive_identity,X) = X ).
%----Existence of left additive additive_inverse
cnf(left_additive_inverse,axiom,
add(additive_inverse(X),X) = additive_identity ).
%----Distributive property of product over sum
cnf(distribute1,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(distribute2,axiom,
multiply(add(X,Y),Z) = add(multiply(X,Z),multiply(Y,Z)) ).
%----Inverse of identity is identity, stupid
cnf(additive_inverse_identity,axiom,
additive_inverse(additive_identity) = additive_identity ).
%----Inverse of additive_inverse of X is X
cnf(additive_inverse_additive_inverse,axiom,
additive_inverse(additive_inverse(X)) = X ).
%----Behavior of 0 and the multiplication operation
cnf(multiply_additive_id1,axiom,
multiply(X,additive_identity) = additive_identity ).
cnf(multiply_additive_id2,axiom,
multiply(additive_identity,X) = additive_identity ).
%----Inverse of (x + y) is additive_inverse(x) + additive_inverse(y)
cnf(distribute_additive_inverse,axiom,
additive_inverse(add(X,Y)) = add(additive_inverse(X),additive_inverse(Y)) ).
%----x * additive_inverse(y) = additive_inverse (x * y)
cnf(multiply_additive_inverse1,axiom,
multiply(X,additive_inverse(Y)) = additive_inverse(multiply(X,Y)) ).
cnf(multiply_additive_inverse2,axiom,
multiply(additive_inverse(X),Y) = additive_inverse(multiply(X,Y)) ).
%----Associativity of addition
cnf(associative_addition,axiom,
add(add(X,Y),Z) = add(X,add(Y,Z)) ).
%----Commutativity of addition
cnf(commutative_addition,axiom,
add(X,Y) = add(Y,X) ).
%----Associativity of product
cnf(associative_multiplication,axiom,
multiply(multiply(X,Y),Z) = multiply(X,multiply(Y,Z)) ).
%--------------------------------------------------------------------------
./RNG003-0.ax
%--------------------------------------------------------------------------
% File : RNG003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Ring Theory (Alternative)
% Axioms : Alternative ring theory (equality) axioms
% Version : [Ste87] (equality) axioms.
% English :
% Refs : [Ste87] Stevens (1987), Some Experiments in Nonassociative Rin
% Source : [Ste87]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 15 ( 15 unt; 0 nHn; 0 RR)
% Number of literals : 15 ( 15 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 6 ( 6 usr; 1 con; 0-3 aty)
% Number of variables : 27 ( 2 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----There exists an additive identity element
cnf(left_additive_identity,axiom,
add(additive_identity,X) = X ).
cnf(right_additive_identity,axiom,
add(X,additive_identity) = X ).
%----Multiplicative zero
cnf(left_multiplicative_zero,axiom,
multiply(additive_identity,X) = additive_identity ).
cnf(right_multiplicative_zero,axiom,
multiply(X,additive_identity) = additive_identity ).
%----Existence of left additive additive_inverse
cnf(left_additive_inverse,axiom,
add(additive_inverse(X),X) = additive_identity ).
cnf(right_additive_inverse,axiom,
add(X,additive_inverse(X)) = additive_identity ).
%----Inverse of additive_inverse of X is X
cnf(additive_inverse_additive_inverse,axiom,
additive_inverse(additive_inverse(X)) = X ).
%----Distributive property of product over sum
cnf(distribute1,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(distribute2,axiom,
multiply(add(X,Y),Z) = add(multiply(X,Z),multiply(Y,Z)) ).
%----Commutativity for addition
cnf(commutativity_for_addition,axiom,
add(X,Y) = add(Y,X) ).
%----Associativity for addition
cnf(associativity_for_addition,axiom,
add(X,add(Y,Z)) = add(add(X,Y),Z) ).
%----Right alternative law
cnf(right_alternative,axiom,
multiply(multiply(X,Y),Y) = multiply(X,multiply(Y,Y)) ).
%----Left alternative law
cnf(left_alternative,axiom,
multiply(multiply(X,X),Y) = multiply(X,multiply(X,Y)) ).
%----Associator
cnf(associator,axiom,
associator(X,Y,Z) = add(multiply(multiply(X,Y),Z),additive_inverse(multiply(X,multiply(Y,Z)))) ).
%----Commutator
cnf(commutator,axiom,
commutator(X,Y) = add(multiply(Y,X),additive_inverse(multiply(X,Y))) ).
%--------------------------------------------------------------------------
./RNG004-0.ax
%--------------------------------------------------------------------------
% File : RNG004-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Ring Theory (Alternative)
% Axioms : Alternative ring theory (equality) axioms
% Version : [AH90] (equality) axioms.
% English :
% Refs : [AH90] Anantharaman & Hsiang (1990), Automated Proofs of the
% Source : [AH90]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 17 ( 15 unt; 0 nHn; 3 RR)
% Number of literals : 19 ( 19 equ; 2 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 32 ( 2 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%----There exists an additive identity element [1]
cnf(left_additive_identity,axiom,
add(additive_identity,X) = X ).
%----Multiplicative identity [2] & [3]
cnf(left_multiplicative_zero,axiom,
multiply(additive_identity,X) = additive_identity ).
cnf(right_multiplicative_zero,axiom,
multiply(X,additive_identity) = additive_identity ).
%----Addition of inverse [4]
cnf(add_inverse,axiom,
add(additive_inverse(X),X) = additive_identity ).
%----Sum of inverses [5]
cnf(sum_of_inverses,axiom,
additive_inverse(add(X,Y)) = add(additive_inverse(X),additive_inverse(Y)) ).
%----Inverse of additive_inverse of X is X [6]
cnf(additive_inverse_additive_inverse,axiom,
additive_inverse(additive_inverse(X)) = X ).
%----Distribution of multiply over add [7] & [8]
cnf(multiply_over_add1,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(multiply_over_add2,axiom,
multiply(add(X,Y),Z) = add(multiply(X,Z),multiply(Y,Z)) ).
%----Right alternative law [9]
cnf(right_alternative,axiom,
multiply(multiply(X,Y),Y) = multiply(X,multiply(Y,Y)) ).
%----Left alternative law [10]
cnf(left_alternative,axiom,
multiply(multiply(X,X),Y) = multiply(X,multiply(X,Y)) ).
%----Inverse and product [11] & [12]
cnf(inverse_product1,axiom,
multiply(additive_inverse(X),Y) = additive_inverse(multiply(X,Y)) ).
cnf(inverse_product2,axiom,
multiply(X,additive_inverse(Y)) = additive_inverse(multiply(X,Y)) ).
%----Inverse of additive identity [13]
cnf(inverse_additive_identity,axiom,
additive_inverse(additive_identity) = additive_identity ).
%----Commutativity for addition
cnf(commutativity_for_addition,axiom,
add(X,Y) = add(Y,X) ).
%----Associativity for addition
cnf(associativity_for_addition,axiom,
add(X,add(Y,Z)) = add(add(X,Y),Z) ).
%----Left and right cancellation for addition
cnf(left_cancellation_for_addition,axiom,
( add(X,Z) != add(Y,Z)
| X = Y ) ).
cnf(right_cancellation_for_addition,axiom,
( add(Z,X) != add(Z,Y)
| X = Y ) ).
%--------------------------------------------------------------------------
./RNG005-0.ax
%--------------------------------------------------------------------------
% File : RNG005-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Ring Theory
% Axioms : Ring theory (equality) axioms
% Version : [LW92] (equality) axioms.
% English :
% Refs : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [LW92] Lusk & Wos (1992), Benchmark Problems in Which Equalit
% Source : [LW92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 9 ( 9 unt; 0 nHn; 0 RR)
% Number of literals : 9 ( 9 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 3 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 18 ( 0 sgn)
% SPC :
% Comments : These axioms are used in [Wos88] p.203.
%--------------------------------------------------------------------------
%----There exists an additive identity element
cnf(left_additive_identity,axiom,
add(additive_identity,X) = X ).
cnf(right_additive_identity,axiom,
add(X,additive_identity) = X ).
%----Existence of left additive additive_inverse
cnf(left_additive_inverse,axiom,
add(additive_inverse(X),X) = additive_identity ).
cnf(right_additive_inverse,axiom,
add(X,additive_inverse(X)) = additive_identity ).
%----Associativity for addition
cnf(associativity_for_addition,axiom,
add(X,add(Y,Z)) = add(add(X,Y),Z) ).
%----Commutativity for addition
cnf(commutativity_for_addition,axiom,
add(X,Y) = add(Y,X) ).
%----Associativity for multiplication
cnf(associativity_for_multiplication,axiom,
multiply(X,multiply(Y,Z)) = multiply(multiply(X,Y),Z) ).
%----Distributive property of product over sum
cnf(distribute1,axiom,
multiply(X,add(Y,Z)) = add(multiply(X,Y),multiply(X,Z)) ).
cnf(distribute2,axiom,
multiply(add(X,Y),Z) = add(multiply(X,Z),multiply(Y,Z)) ).
%--------------------------------------------------------------------------
Robbins Algebra
./ROB001-0.ax
%--------------------------------------------------------------------------
% File : ROB001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Robbins algebra
% Axioms : Robbins algebra axioms
% Version : [Win90] (equality) axioms.
% English :
% Refs : [HMT71] Henkin et al. (1971), Cylindrical Algebras
% : [Win90] Winker (1990), Robbins Algebra: Conditions that make a
% Source : [OTTER]
% Names : Lemma 2.2 [Win90]
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 3 unt; 0 nHn; 0 RR)
% Number of literals : 3 ( 3 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 6 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 1-2 aty)
% Number of variables : 7 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(commutativity_of_add,axiom,
add(X,Y) = add(Y,X) ).
cnf(associativity_of_add,axiom,
add(add(X,Y),Z) = add(X,add(Y,Z)) ).
cnf(robbins_axiom,axiom,
negate(add(negate(add(X,Y)),negate(add(X,negate(Y))))) = X ).
%--------------------------------------------------------------------------
./ROB001-1.ax
%--------------------------------------------------------------------------
% File : ROB001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Robbins Algebra
% Axioms : Robbins algebra numbers axioms
% Version : [Win90] (equality) axioms.
% English :
% Refs : [HMT71] Henkin et al. (1971), Cylindrical Algebras
% : [Win90] Winker (1990), Robbins Algebra: Conditions that make a
% Source : [Win90]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 4 ( 2 unt; 0 nHn; 2 RR)
% Number of literals : 6 ( 2 equ; 2 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 4 ( 0 sgn)
% SPC :
% Comments : Requires ROB001-0.ax
%--------------------------------------------------------------------------
cnf(one_times_x,axiom,
multiply(one,X) = X ).
cnf(times_by_adding,axiom,
( ~ positive_integer(X)
| multiply(successor(V),X) = add(X,multiply(V,X)) ) ).
cnf(one,axiom,
positive_integer(one) ).
cnf(next_integer,axiom,
( ~ positive_integer(X)
| positive_integer(successor(X)) ) ).
%--------------------------------------------------------------------------
Set Theory
./SET001-0.ax
%--------------------------------------------------------------------------
% File : SET001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Membership and subsets
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental tests of resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 1 nHn; 5 RR)
% Number of literals : 14 ( 0 equ; 7 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 3 ( 3 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 2-2 aty)
% Number of variables : 13 ( 0 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
cnf(membership_in_subsets,axiom,
( ~ member(Element,Subset)
| ~ subset(Subset,Superset)
| member(Element,Superset) ) ).
cnf(subsets_axiom1,axiom,
( subset(Subset,Superset)
| member(member_of_1_not_of_2(Subset,Superset),Subset) ) ).
cnf(subsets_axiom2,axiom,
( ~ member(member_of_1_not_of_2(Subset,Superset),Superset)
| subset(Subset,Superset) ) ).
cnf(set_equal_sets_are_subsets1,axiom,
( ~ equal_sets(Subset,Superset)
| subset(Subset,Superset) ) ).
cnf(set_equal_sets_are_subsets2,axiom,
( ~ equal_sets(Superset,Subset)
| subset(Subset,Superset) ) ).
cnf(subsets_are_set_equal_sets,axiom,
( ~ subset(Set1,Set2)
| ~ subset(Set2,Set1)
| equal_sets(Set2,Set1) ) ).
%--------------------------------------------------------------------------
./SET001-1.ax
%--------------------------------------------------------------------------
% File : SET001-1 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Membership and union
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental tests of resol
% Source : [SPRFN]
% Names : Problem 118 [LS74]
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 2 nHn; 5 RR)
% Number of literals : 20 ( 0 equ; 10 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 21 ( 2 sgn)
% SPC :
% Comments : Requires SET001-0.ax
%--------------------------------------------------------------------------
cnf(member_of_union_is_member_of_one_set,axiom,
( ~ union(Set1,Set2,Union)
| ~ member(Element,Union)
| member(Element,Set1)
| member(Element,Set2) ) ).
cnf(member_of_set1_is_member_of_union,axiom,
( ~ union(Set1,Set2,Union)
| ~ member(Element,Set1)
| member(Element,Union) ) ).
cnf(member_of_set2_is_member_of_union,axiom,
( ~ union(Set1,Set2,Union)
| ~ member(Element,Set2)
| member(Element,Union) ) ).
cnf(union_axiom1,axiom,
( union(Set1,Set2,Union)
| member(g(Set1,Set2,Union),Set1)
| member(g(Set1,Set2,Union),Set2)
| member(g(Set1,Set2,Union),Union) ) ).
cnf(union_axiom2,axiom,
( ~ member(g(Set1,Set2,Union),Set1)
| ~ member(g(Set1,Set2,Union),Union)
| union(Set1,Set2,Union) ) ).
cnf(union_axiom3,axiom,
( ~ member(g(Set1,Set2,Union),Set2)
| ~ member(g(Set1,Set2,Union),Union)
| union(Set1,Set2,Union) ) ).
%--------------------------------------------------------------------------
./SET001-2.ax
%--------------------------------------------------------------------------
% File : SET001-2 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Membership and intersection
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental tests of resol
% Source : [SPRFN]
% Names : Problem 118 [LS74]
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 2 nHn; 4 RR)
% Number of literals : 20 ( 0 equ; 10 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 21 ( 2 sgn)
% SPC :
% Comments : Requires SET001-0.ax
%--------------------------------------------------------------------------
cnf(member_of_intersection_is_member_of_set1,axiom,
( ~ intersection(Set1,Set2,Intersection)
| ~ member(Element,Intersection)
| member(Element,Set1) ) ).
cnf(member_of_intersection_is_member_of_set2,axiom,
( ~ intersection(Set1,Set2,Intersection)
| ~ member(Element,Intersection)
| member(Element,Set2) ) ).
cnf(member_of_both_is_member_of_intersection,axiom,
( ~ intersection(Set1,Set2,Intersection)
| ~ member(Element,Set2)
| ~ member(Element,Set1)
| member(Element,Intersection) ) ).
cnf(intersection_axiom1,axiom,
( member(h(Set1,Set2,Intersection),Intersection)
| intersection(Set1,Set2,Intersection)
| member(h(Set1,Set2,Intersection),Set1) ) ).
cnf(intersection_axiom2,axiom,
( member(h(Set1,Set2,Intersection),Intersection)
| intersection(Set1,Set2,Intersection)
| member(h(Set1,Set2,Intersection),Set2) ) ).
cnf(intersection_axiom3,axiom,
( ~ member(h(Set1,Set2,Intersection),Intersection)
| ~ member(h(Set1,Set2,Intersection),Set2)
| ~ member(h(Set1,Set2,Intersection),Set1)
| intersection(Set1,Set2,Intersection) ) ).
%--------------------------------------------------------------------------
./SET001-3.ax
%--------------------------------------------------------------------------
% File : SET001-3 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Membership and difference
% Version : [LS74] axioms.
% English :
% Refs : [LS74] Lawrence & Starkey (1974), Experimental tests of resol
% Source : [SPRFN]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 6 ( 0 unt; 4 nHn; 5 RR)
% Number of literals : 20 ( 0 equ; 10 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 21 ( 2 sgn)
% SPC :
% Comments : Requires SET001-0.ax
%--------------------------------------------------------------------------
cnf(member_of_difference,axiom,
( ~ difference(Set1,Set2,Difference)
| ~ member(Element,Difference)
| member(Element,Set1) ) ).
cnf(not_member_of_difference,axiom,
( ~ member(Element,Set1)
| ~ member(Element,Set2)
| ~ difference(A_set,Set1,Set2) ) ).
cnf(member_of_difference_or_set2,axiom,
( ~ member(Element,Set1)
| ~ difference(Set1,Set2,Difference)
| member(Element,Difference)
| member(Element,Set2) ) ).
cnf(difference_axiom2,axiom,
( difference(Set1,Set2,Difference)
| member(k(Set1,Set2,Difference),Set1)
| member(k(Set1,Set2,Difference),Difference) ) ).
cnf(difference_axiom1,axiom,
( ~ member(k(Set1,Set2,Difference),Set2)
| member(k(Set1,Set2,Difference),Difference)
| difference(Set1,Set2,Difference) ) ).
cnf(difference_axiom3,axiom,
( ~ member(k(Set1,Set2,Difference),Difference)
| ~ member(k(Set1,Set2,Difference),Set1)
| member(k(Set1,Set2,Difference),Set2)
| difference(Set1,Set2,Difference) ) ).
%--------------------------------------------------------------------------
./SET002-0.ax
%--------------------------------------------------------------------------
% File : SET002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Set theory axioms
% Version : [MOW76] axioms : Biased.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 21 ( 3 unt; 3 nHn; 15 RR)
% Number of literals : 45 ( 0 equ; 23 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 2-2 aty)
% Number of functors : 5 ( 5 usr; 1 con; 0-2 aty)
% Number of variables : 48 ( 5 sgn)
% SPC :
% Comments :
%--------------------------------------------------------------------------
%-----Definition of the empty set.
cnf(empty_set,axiom,
~ member(X,empty_set) ).
%-----Subset axioms. These are the same as in SET001-0.ax
cnf(membership_in_subsets,axiom,
( ~ member(Element,Subset)
| ~ subset(Subset,Superset)
| member(Element,Superset) ) ).
cnf(subsets_axiom1,axiom,
( subset(Subset,Superset)
| member(member_of_1_not_of_2(Subset,Superset),Subset) ) ).
cnf(subsets_axiom2,axiom,
( ~ member(member_of_1_not_of_2(Subset,Superset),Superset)
| subset(Subset,Superset) ) ).
%-----Axioms of complementation.
cnf(member_of_set_or_complement,axiom,
( member(X,Xs)
| member(X,complement(Xs)) ) ).
cnf(not_member_of_set_and_complement,axiom,
( ~ member(X,Xs)
| ~ member(X,complement(Xs)) ) ).
%-----Axioms of union.
cnf(member_of_set1_is_member_of_union,axiom,
( ~ member(X,Xs)
| member(X,union(Xs,Ys)) ) ).
cnf(member_of_set2_is_member_of_union,axiom,
( ~ member(X,Ys)
| member(X,union(Xs,Ys)) ) ).
cnf(member_of_union_is_member_of_one_set,axiom,
( ~ member(X,union(Xs,Ys))
| member(X,Xs)
| member(X,Ys) ) ).
%-----Axioms of intersection.
cnf(member_of_both_is_member_of_intersection,axiom,
( ~ member(X,Xs)
| ~ member(X,Ys)
| member(X,intersection(Xs,Ys)) ) ).
cnf(member_of_intersection_is_member_of_set1,axiom,
( ~ member(X,intersection(Xs,Ys))
| member(X,Xs) ) ).
cnf(member_of_intersection_is_member_of_set2,axiom,
( ~ member(X,intersection(Xs,Ys))
| member(X,Ys) ) ).
%-----Set equality axioms.
cnf(set_equal_sets_are_subsets1,axiom,
( ~ equal_sets(Subset,Superset)
| subset(Subset,Superset) ) ).
cnf(set_equal_sets_are_subsets2,axiom,
( ~ equal_sets(Superset,Subset)
| subset(Subset,Superset) ) ).
cnf(subsets_are_set_equal_sets,axiom,
( ~ subset(Set1,Set2)
| ~ subset(Set2,Set1)
| equal_sets(Set2,Set1) ) ).
%-----Equality axioms.
cnf(reflexivity_for_set_equal,axiom,
equal_sets(Xs,Xs) ).
cnf(symmetry_for_set_equal,axiom,
( ~ equal_sets(Xs,Ys)
| equal_sets(Ys,Xs) ) ).
cnf(transitivity_for_set_equal,axiom,
( ~ equal_sets(Xs,Ys)
| ~ equal_sets(Ys,Zs)
| equal_sets(Xs,Zs) ) ).
cnf(reflexivity_for_equal_elements,axiom,
equal_elements(X,X) ).
cnf(symmetry_for_equal_elements,axiom,
( ~ equal_elements(X,Y)
| equal_elements(Y,X) ) ).
cnf(transitivity_for_equal_elements,axiom,
( ~ equal_elements(X,Y)
| ~ equal_elements(Y,Z)
| equal_elements(X,Z) ) ).
%--------------------------------------------------------------------------
./SET003-0.ax
%--------------------------------------------------------------------------
% File : SET003-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Set Theory
% Axioms : Set theory axioms based on Godel set theory
% Version : [BL+86] axioms.
% English :
% Refs : [BL+86] Boyer et al. (1986), Set Theory in First-Order Logic:
% : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% : [McC92] McCune (1992), Email to G. Sutcliffe
% Source : [McC92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 141 ( 11 unt; 20 nHn; 118 RR)
% Number of literals : 355 ( 47 equ; 197 neg)
% Maximal clause size : 8 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 14 ( 13 usr; 0 prp; 1-5 aty)
% Number of functors : 59 ( 59 usr; 6 con; 0-5 aty)
% Number of variables : 320 ( 28 sgn)
% SPC :
% Comments : Requires EQU001-0.ax
% : These axioms are based on Godel's axioms for set theory.
% : These axioms are also used in [Wos88] p.225.
%--------------------------------------------------------------------------
%----Axiom A-1, little sets are sets (omitted because all objects are sets)
%----Axiom A-2, elements of sets are little sets.
cnf(a2,axiom,
( ~ member(X,Y)
| little_set(X) ) ).
%----Axiom A-3, principle of extensionality
cnf(extensionality1,axiom,
( little_set(f1(X,Y))
| X = Y ) ).
cnf(extensionality2,axiom,
( member(f1(X,Y),X)
| member(f1(X,Y),Y)
| X = Y ) ).
cnf(extensionality3,axiom,
( ~ member(f1(X,Y),X)
| ~ member(f1(X,Y),Y)
| X = Y ) ).
%----Axiom a-4, existence of nonordered pair
cnf(non_ordered_pair1,axiom,
( ~ member(U,non_ordered_pair(X,Y))
| U = X
| U = Y ) ).
cnf(non_ordered_pair2,axiom,
( member(U,non_ordered_pair(X,Y))
| ~ little_set(U)
| U != X ) ).
cnf(non_ordered_pair3,axiom,
( member(U,non_ordered_pair(X,Y))
| ~ little_set(U)
| U != Y ) ).
cnf(non_ordered_pair4,axiom,
little_set(non_ordered_pair(X,Y)) ).
%----Definition of singleton set
cnf(singleton_set,axiom,
singleton_set(X) = non_ordered_pair(X,X) ).
%----Definition of ordered pair
cnf(ordered_pair,axiom,
ordered_pair(X,Y) = non_ordered_pair(singleton_set(X),non_ordered_pair(X,Y)) ).
%----Definition of ordered pair predicate
cnf(ordered_pair_predicate1,axiom,
( ~ ordered_pair_predicate(X)
| little_set(f2(X)) ) ).
cnf(ordered_pair_predicate2,axiom,
( ~ ordered_pair_predicate(X)
| little_set(f3(X)) ) ).
cnf(ordered_pair_predicate3,axiom,
( ~ ordered_pair_predicate(X)
| X = ordered_pair(f2(X),f3(X)) ) ).
cnf(ordered_pair_predicate4,axiom,
( ordered_pair_predicate(X)
| ~ little_set(Y)
| ~ little_set(Z)
| X != ordered_pair(Y,Z) ) ).
%----Axiom of first
cnf(first1,axiom,
( ~ member(Z,first(X))
| little_set(f4(Z,X)) ) ).
cnf(first2,axiom,
( ~ member(Z,first(X))
| little_set(f5(Z,X)) ) ).
cnf(first3,axiom,
( ~ member(Z,first(X))
| X = ordered_pair(f4(Z,X),f5(Z,X)) ) ).
cnf(first4,axiom,
( ~ member(Z,first(X))
| member(Z,f4(Z,X)) ) ).
cnf(first5,axiom,
( member(Z,first(X))
| ~ little_set(U)
| ~ little_set(V)
| X != ordered_pair(U,V)
| ~ member(Z,U) ) ).
%----Axiom of second
cnf(second1,axiom,
( ~ member(Z,second(X))
| little_set(f6(Z,X)) ) ).
cnf(second2,axiom,
( ~ member(Z,second(X))
| little_set(f7(Z,X)) ) ).
cnf(second3,axiom,
( ~ member(Z,second(X))
| X = ordered_pair(f6(Z,X),f7(Z,X)) ) ).
cnf(second4,axiom,
( ~ member(Z,second(X))
| member(Z,f7(Z,X)) ) ).
cnf(second5,axiom,
( member(Z,second(X))
| ~ little_set(U)
| ~ little_set(V)
| X != ordered_pair(U,V)
| ~ member(Z,V) ) ).
%----Axiom B-1, element relation
cnf(element_relation1,axiom,
( ~ member(Z,estin)
| ordered_pair_predicate(Z) ) ).
cnf(element_relation2,axiom,
( ~ member(Z,estin)
| member(first(Z),second(Z)) ) ).
cnf(element_relation3,axiom,
( member(Z,estin)
| ~ little_set(Z)
| ~ ordered_pair_predicate(Z)
| ~ member(first(Z),second(Z)) ) ).
%----Axiom B-2, intersection
cnf(intersection1,axiom,
( ~ member(Z,intersection(X,Y))
| member(Z,X) ) ).
cnf(intersection2,axiom,
( ~ member(Z,intersection(X,Y))
| member(Z,Y) ) ).
cnf(intersection3,axiom,
( member(Z,intersection(X,Y))
| ~ member(Z,X)
| ~ member(Z,Y) ) ).
%----Axiom B-3, complement
cnf(complement1,axiom,
( ~ member(Z,complement(X))
| ~ member(Z,X) ) ).
cnf(complement2,axiom,
( member(Z,complement(X))
| ~ little_set(Z)
| member(Z,X) ) ).
%----Definition of union
cnf(union,axiom,
union(X,Y) = complement(intersection(complement(X),complement(Y))) ).
%----Axiom B-4, domain
cnf(domain1,axiom,
( ~ member(Z,domain_of(X))
| ordered_pair_predicate(f8(Z,X)) ) ).
cnf(domain2,axiom,
( ~ member(Z,domain_of(X))
| member(f8(Z,X),X) ) ).
cnf(domain3,axiom,
( ~ member(Z,domain_of(X))
| Z = first(f8(Z,X)) ) ).
cnf(domain4,axiom,
( member(Z,domain_of(X))
| ~ little_set(Z)
| ~ ordered_pair_predicate(Xp)
| ~ member(Xp,X)
| Z != first(Xp) ) ).
%----Axiom B-5, cross product
cnf(cross_product1,axiom,
( ~ member(Z,cross_product(X,Y))
| ordered_pair_predicate(Z) ) ).
cnf(cross_product2,axiom,
( ~ member(Z,cross_product(X,Y))
| member(first(Z),X) ) ).
cnf(cross_product3,axiom,
( ~ member(Z,cross_product(X,Y))
| member(second(Z),Y) ) ).
cnf(cross_product4,axiom,
( member(Z,cross_product(X,Y))
| ~ little_set(Z)
| ~ ordered_pair_predicate(Z)
| ~ member(first(Z),X)
| ~ member(second(Z),Y) ) ).
%----Axiom B-6, converse
cnf(converse1,axiom,
( ~ member(Z,converse(X))
| ordered_pair_predicate(Z) ) ).
cnf(converse2,axiom,
( ~ member(Z,converse(X))
| member(ordered_pair(second(Z),first(Z)),X) ) ).
cnf(converse3,axiom,
( member(Z,converse(X))
| ~ little_set(Z)
| ~ ordered_pair_predicate(Z)
| ~ member(ordered_pair(second(Z),first(Z)),X) ) ).
%----Axiom B-7, rotate_right
cnf(rotate_right1,axiom,
( ~ member(Z,rotate_right(X))
| little_set(f9(Z,X)) ) ).
cnf(rotate_right2,axiom,
( ~ member(Z,rotate_right(X))
| little_set(f10(Z,X)) ) ).
cnf(rotate_right3,axiom,
( ~ member(Z,rotate_right(X))
| little_set(f11(Z,X)) ) ).
cnf(rotate_right4,axiom,
( ~ member(Z,rotate_right(X))
| Z = ordered_pair(f9(Z,X),ordered_pair(f10(Z,X),f11(Z,X))) ) ).
cnf(rotate_right5,axiom,
( ~ member(Z,rotate_right(X))
| member(ordered_pair(f10(Z,X),ordered_pair(f11(Z,X),f9(Z,X))),X) ) ).
cnf(rotate_right6,axiom,
( member(Z,rotate_right(X))
| ~ little_set(Z)
| ~ little_set(U)
| ~ little_set(V)
| ~ little_set(W)
| Z != ordered_pair(U,ordered_pair(V,W))
| ~ member(ordered_pair(V,ordered_pair(W,U)),X) ) ).
%----Axiom B-8, flip_range
cnf(flip_range1,axiom,
( ~ member(Z,flip_range_of(X))
| little_set(f12(Z,X)) ) ).
cnf(flip_range2,axiom,
( ~ member(Z,flip_range_of(X))
| little_set(f13(Z,X)) ) ).
cnf(flip_range3,axiom,
( ~ member(Z,flip_range_of(X))
| little_set(f14(Z,X)) ) ).
cnf(flip_range4,axiom,
( ~ member(Z,flip_range_of(X))
| Z = ordered_pair(f12(Z,X),ordered_pair(f13(Z,X),f14(Z,X))) ) ).
cnf(flip_range5,axiom,
( ~ member(Z,flip_range_of(X))
| member(ordered_pair(f12(Z,X),ordered_pair(f14(Z,X),f13(Z,X))),X) ) ).
cnf(flip_range6,axiom,
( member(Z,flip_range_of(X))
| ~ little_set(Z)
| ~ little_set(U)
| ~ little_set(V)
| ~ little_set(W)
| Z != ordered_pair(U,ordered_pair(V,W))
| ~ member(ordered_pair(U,ordered_pair(W,V)),X) ) ).
%----Definition of successor
cnf(successor,axiom,
successor(X) = union(X,singleton_set(X)) ).
%----Definition of empty set
cnf(empty_set,axiom,
~ member(Z,empty_set) ).
%----Definition of universal set
cnf(universal_set,axiom,
( member(Z,universal_set)
| ~ little_set(Z) ) ).
%----Axiom C-1, infinity
cnf(infinity1,axiom,
little_set(infinity) ).
cnf(infinity2,axiom,
member(empty_set,infinity) ).
cnf(infinity3,axiom,
( ~ member(X,infinity)
| member(successor(X),infinity) ) ).
%----Axiom C-2, sigma (union of elements)
cnf(sigma1,axiom,
( ~ member(Z,sigma(X))
| member(f16(Z,X),X) ) ).
cnf(sigma2,axiom,
( ~ member(Z,sigma(X))
| member(Z,f16(Z,X)) ) ).
cnf(sigma3,axiom,
( member(Z,sigma(X))
| ~ member(Y,X)
| ~ member(Z,Y) ) ).
cnf(sigma4,axiom,
( ~ little_set(U)
| little_set(sigma(U)) ) ).
%----Definition of subset
cnf(subset1,axiom,
( ~ subset(X,Y)
| ~ member(U,X)
| member(U,Y) ) ).
cnf(subset2,axiom,
( subset(X,Y)
| member(f17(X,Y),X) ) ).
cnf(subset3,axiom,
( subset(X,Y)
| ~ member(f17(X,Y),Y) ) ).
%----Definition of proper subset
cnf(proper_subset1,axiom,
( ~ proper_subset(X,Y)
| subset(X,Y) ) ).
cnf(proper_subset2,axiom,
( ~ proper_subset(X,Y)
| X != Y ) ).
cnf(proper_subset3,axiom,
( proper_subset(X,Y)
| ~ subset(X,Y)
| X = Y ) ).
%----Axiom C-3, powerset
cnf(powerset1,axiom,
( ~ member(Z,powerset(X))
| subset(Z,X) ) ).
cnf(powerset2,axiom,
( member(Z,powerset(X))
| ~ little_set(Z)
| ~ subset(Z,X) ) ).
cnf(powerset3,axiom,
( ~ little_set(U)
| little_set(powerset(U)) ) ).
%----Definition of relation
cnf(relation1,axiom,
( ~ relation(Z)
| ~ member(X,Z)
| ordered_pair_predicate(X) ) ).
cnf(relation2,axiom,
( relation(Z)
| member(f18(Z),Z) ) ).
cnf(relation3,axiom,
( relation(Z)
| ~ ordered_pair_predicate(f18(Z)) ) ).
%----Definition of single-valued set
cnf(single_valued_set1,axiom,
( ~ single_valued_set(X)
| ~ little_set(U)
| ~ little_set(V)
| ~ little_set(W)
| ~ member(ordered_pair(U,V),X)
| ~ member(ordered_pair(U,W),X)
| V = W ) ).
cnf(single_valued_set2,axiom,
( single_valued_set(X)
| little_set(f19(X)) ) ).
cnf(single_valued_set3,axiom,
( single_valued_set(X)
| little_set(f20(X)) ) ).
cnf(single_valued_set4,axiom,
( single_valued_set(X)
| little_set(f21(X)) ) ).
cnf(single_valued_set5,axiom,
( single_valued_set(X)
| member(ordered_pair(f19(X),f20(X)),X) ) ).
cnf(single_valued_set6,axiom,
( single_valued_set(X)
| member(ordered_pair(f19(X),f21(X)),X) ) ).
cnf(single_valued_set7,axiom,
( single_valued_set(X)
| f20(X) != f21(X) ) ).
%----Definition of function
cnf(function1,axiom,
( ~ function(Xf)
| relation(Xf) ) ).
cnf(function2,axiom,
( ~ function(Xf)
| single_valued_set(Xf) ) ).
cnf(function3,axiom,
( function(Xf)
| ~ relation(Xf)
| ~ single_valued_set(Xf) ) ).
%----Axiom C-4, image and substitution
cnf(image_and_substitution1,axiom,
( ~ member(Z,image(X,Xf))
| ordered_pair_predicate(f22(Z,X,Xf)) ) ).
cnf(image_and_substitution2,axiom,
( ~ member(Z,image(X,Xf))
| member(f22(Z,X,Xf),Xf) ) ).
cnf(image_and_substitution3,axiom,
( ~ member(Z,image(X,Xf))
| member(first(f22(Z,X,Xf)),X) ) ).
cnf(image_and_substitution4,axiom,
( ~ member(Z,image(X,Xf))
| second(f22(Z,X,Xf)) = Z ) ).
cnf(image_and_substitution5,axiom,
( member(Z,image(X,Xf))
| ~ little_set(Z)
| ~ ordered_pair_predicate(Y)
| ~ member(Y,Xf)
| ~ member(first(Y),X)
| second(Y) != Z ) ).
cnf(image_and_substitution6,axiom,
( ~ little_set(X)
| ~ function(Xf)
| little_set(image(X,Xf)) ) ).
%----Definition of disjoint
cnf(disjoint1,axiom,
( ~ disjoint(X,Y)
| ~ member(U,X)
| ~ member(U,Y) ) ).
cnf(disjoint2,axiom,
( disjoint(X,Y)
| member(f23(X,Y),X) ) ).
cnf(disjoint3,axiom,
( disjoint(X,Y)
| member(f23(X,Y),Y) ) ).
%----Axiom D, regularity
cnf(regularity1,axiom,
( X = empty_set
| member(f24(X),X) ) ).
cnf(regularity2,axiom,
( X = empty_set
| disjoint(f24(X),X) ) ).
%----Axiom E, choice
cnf(choice1,axiom,
function(f25) ).
cnf(choice2,axiom,
( ~ little_set(X)
| X = empty_set
| member(f26(X),X) ) ).
cnf(choice3,axiom,
( ~ little_set(X)
| X = empty_set
| member(ordered_pair(X,f26(X)),f25) ) ).
%----Definition of range_of
cnf(range_of1,axiom,
( ~ member(Z,range_of(X))
| ordered_pair_predicate(f27(Z,X)) ) ).
cnf(range_of2,axiom,
( ~ member(Z,range_of(X))
| member(f27(Z,X),X) ) ).
cnf(range_of3,axiom,
( ~ member(Z,range_of(X))
| Z = second(f27(Z,X)) ) ).
cnf(range_of4,axiom,
( member(Z,range_of(X))
| ~ little_set(Z)
| ~ ordered_pair_predicate(Xp)
| ~ member(Xp,X)
| Z != second(Xp) ) ).
%----Definition of identity relation
cnf(identity_relation1,axiom,
( ~ member(Z,identity_relation)
| ordered_pair_predicate(Z) ) ).
cnf(identity_relation2,axiom,
( ~ member(Z,identity_relation)
| first(Z) = second(Z) ) ).
cnf(identity_relation3,axiom,
( member(Z,identity_relation)
| ~ little_set(Z)
| ~ ordered_pair_predicate(Z)
| first(Z) != second(Z) ) ).
%----Definition of restrict
cnf(restrict,axiom,
restrict(X,Y) = intersection(X,cross_product(Y,universal_set)) ).
%----Definition of one-to-one function
cnf(one_to_one_function1,axiom,
( ~ one_to_one_function(Xf)
| function(Xf) ) ).
cnf(one_to_one_function2,axiom,
( ~ one_to_one_function(Xf)
| function(converse(Xf)) ) ).
cnf(one_to_one_function3,axiom,
( one_to_one_function(Xf)
| ~ function(Xf)
| ~ function(converse(Xf)) ) ).
%----Definition of apply
cnf(apply1,axiom,
( ~ member(Z,apply(Xf,Y))
| ordered_pair_predicate(f28(Z,Xf,Y)) ) ).
cnf(apply2,axiom,
( ~ member(Z,apply(Xf,Y))
| member(f28(Z,Xf,Y),Xf) ) ).
cnf(apply3,axiom,
( ~ member(Z,apply(Xf,Y))
| first(f28(Z,Xf,Y)) = Y ) ).
cnf(apply4,axiom,
( ~ member(Z,apply(Xf,Y))
| member(Z,second(f28(Z,Xf,Y))) ) ).
cnf(apply5,axiom,
( member(Z,apply(Xf,Y))
| ~ ordered_pair_predicate(W)
| ~ member(W,Xf)
| first(W) != Y
| ~ member(Z,second(W)) ) ).
%----Definition of apply to 2 arguments
cnf(apply_to_two_arguments,axiom,
apply_to_two_arguments(Xf,X,Y) = apply(Xf,ordered_pair(X,Y)) ).
%----Definition of maps
cnf(maps1,axiom,
( ~ maps(Xf,X,Y)
| function(Xf) ) ).
cnf(maps2,axiom,
( ~ maps(Xf,X,Y)
| domain_of(Xf) = X ) ).
cnf(maps3,axiom,
( ~ maps(Xf,X,Y)
| subset(range_of(Xf),Y) ) ).
cnf(maps4,axiom,
( maps(Xf,X,Y)
| ~ function(Xf)
| domain_of(Xf) != X
| ~ subset(range_of(Xf),Y) ) ).
%----Definition of closed
cnf(closed1,axiom,
( ~ closed(Xs,Xf)
| little_set(Xs) ) ).
cnf(closed2,axiom,
( ~ closed(Xs,Xf)
| little_set(Xf) ) ).
cnf(closed3,axiom,
( ~ closed(Xs,Xf)
| maps(Xf,cross_product(Xs,Xs),Xs) ) ).
cnf(closed4,axiom,
( closed(Xs,Xf)
| ~ little_set(Xs)
| ~ little_set(Xf)
| ~ maps(Xf,cross_product(Xs,Xs),Xs) ) ).
%----Definition of compose
cnf(compose1,axiom,
( ~ member(Z,compose(Xf,Xg))
| little_set(f29(Z,Xf,Xg)) ) ).
cnf(compose2,axiom,
( ~ member(Z,compose(Xf,Xg))
| little_set(f30(Z,Xf,Xg)) ) ).
cnf(compose3,axiom,
( ~ member(Z,compose(Xf,Xg))
| little_set(f31(Z,Xf,Xg)) ) ).
cnf(compose4,axiom,
( ~ member(Z,compose(Xf,Xg))
| Z = ordered_pair(f29(Z,Xf,Xg),f30(Z,Xf,Xg)) ) ).
cnf(compose5,axiom,
( ~ member(Z,compose(Xf,Xg))
| member(ordered_pair(f29(Z,Xf,Xg),f31(Z,Xf,Xg)),Xf) ) ).
cnf(compose6,axiom,
( ~ member(Z,compose(Xf,Xg))
| member(ordered_pair(f31(Z,Xf,Xg),f30(Z,Xf,Xg)),Xg) ) ).
cnf(compose7,axiom,
( member(Z,compose(Xf,Xg))
| ~ little_set(Z)
| ~ little_set(X)
| ~ little_set(Y)
| ~ little_set(W)
| Z != ordered_pair(X,Y)
| ~ member(ordered_pair(X,W),Xf)
| ~ member(ordered_pair(W,Y),Xg) ) ).
%----Definition of a homomorphism
cnf(homomorphism1,axiom,
( ~ homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| closed(Xs1,Xf1) ) ).
cnf(homomorphism2,axiom,
( ~ homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| closed(Xs2,Xf2) ) ).
cnf(homomorphism3,axiom,
( ~ homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| maps(Xh,Xs1,Xs2) ) ).
cnf(homomorphism4,axiom,
( ~ homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| ~ member(X,Xs1)
| ~ member(Y,Xs1)
| apply(Xh,apply_to_two_arguments(Xf1,X,Y)) = apply_to_two_arguments(Xf2,apply(Xh,X),apply(Xh,Y)) ) ).
cnf(homomorphism5,axiom,
( homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| ~ closed(Xs1,Xf1)
| ~ closed(Xs2,Xf2)
| ~ maps(Xh,Xs1,Xs2)
| member(f32(Xh,Xs1,Xf1,Xs2,Xf2),Xs1) ) ).
cnf(homomorphism6,axiom,
( homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| ~ closed(Xs1,Xf1)
| ~ closed(Xs2,Xf2)
| ~ maps(Xh,Xs1,Xs2)
| member(f33(Xh,Xs1,Xf1,Xs2,Xf2),Xs1) ) ).
cnf(homomorphism7,axiom,
( homomorphism(Xh,Xs1,Xf1,Xs2,Xf2)
| ~ closed(Xs1,Xf1)
| ~ closed(Xs2,Xf2)
| ~ maps(Xh,Xs1,Xs2)
| apply(Xh,apply_to_two_arguments(Xf1,f32(Xh,Xs1,Xf1,Xs2,Xf2),f33(Xh,Xs1,Xf1,Xs2,Xf2))) != apply_to_two_arguments(Xf2,apply(Xh,f32(Xh,Xs1,Xf1,Xs2,Xf2)),apply(Xh,f33(Xh,Xs1,Xf1,Xs2,Xf2))) ) ).
%--------------------------------------------------------------------------
./SET004-0.ax
%--------------------------------------------------------------------------
% File : SET004-0 : TPTP v8.2.0. Bugfixed v2.1.0.
% Domain : Set Theory
% Axioms : Set theory axioms based on NBG set theory
% Version : [Qua92] axioms.
% English :
% Refs : [Qua92] Quaife (1992), Automated Deduction in von Neumann-Bern
% Source : [Qua92]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 91 ( 29 unt; 8 nHn; 62 RR)
% Number of literals : 181 ( 39 equ; 84 neg)
% Maximal clause size : 5 ( 1 avg)
% Maximal term depth : 6 ( 1 avg)
% Number of predicates : 10 ( 9 usr; 0 prp; 1-3 aty)
% Number of functors : 38 ( 38 usr; 8 con; 0-3 aty)
% Number of variables : 176 ( 25 sgn)
% SPC :
% Comments :
% Bugfixes : v2.1.0 - Clause compatible4 fixed
%--------------------------------------------------------------------------
%----GROUP 1: AXIOMS AND BASIC DEFINITIONS.
%----Axiom A-1: sets are classes (omitted because all objects are
%----classes).
%----Definition of < (subclass).
%----a:x:a:y:((x < y) <=> a:u:((u e x) ==> (u e y))).
cnf(subclass_members,axiom,
( ~ subclass(X,Y)
| ~ member(U,X)
| member(U,Y) ) ).
cnf(not_subclass_members1,axiom,
( member(not_subclass_element(X,Y),X)
| subclass(X,Y) ) ).
cnf(not_subclass_members2,axiom,
( ~ member(not_subclass_element(X,Y),Y)
| subclass(X,Y) ) ).
%----Axiom A-2: elements of classes are sets.
%----a:x:(x < universal_class).
%----Singleton variables OK.
cnf(class_elements_are_sets,axiom,
subclass(X,universal_class) ).
%----Axiom A-3: principle of extensionality.
%----a:x:a:y:((x = y) <=> (x < y) & (y < x)).
cnf(equal_implies_subclass1,axiom,
( X != Y
| subclass(X,Y) ) ).
cnf(equal_implies_subclass2,axiom,
( X != Y
| subclass(Y,X) ) ).
cnf(subclass_implies_equal,axiom,
( ~ subclass(X,Y)
| ~ subclass(Y,X)
| X = Y ) ).
%----Axiom A-4: existence of unordered pair.
%----a:u:a:x:a:y:((u e {x, y}) <=> (u e universal_class)
%----& (u = x | u = y)).
%----a:x:a:y:({x, y} e universal_class).
cnf(unordered_pair_member,axiom,
( ~ member(U,unordered_pair(X,Y))
| U = X
| U = Y ) ).
%----(x e universal_class), (u = x) --> (u e {x, y}).
%----Singleton variables OK.
cnf(unordered_pair2,axiom,
( ~ member(X,universal_class)
| member(X,unordered_pair(X,Y)) ) ).
%----(y e universal_class), (u = y) --> (u e {x, y}).
%----Singleton variables OK.
cnf(unordered_pair3,axiom,
( ~ member(Y,universal_class)
| member(Y,unordered_pair(X,Y)) ) ).
%----Singleton variables OK.
cnf(unordered_pairs_in_universal,axiom,
member(unordered_pair(X,Y),universal_class) ).
%----Definition of singleton set.
%----a:x:({x} = {x, x}).
cnf(singleton_set,axiom,
unordered_pair(X,X) = singleton(X) ).
%----See Theorem (SS6) for memb.
%----Definition of ordered pair.
%----a:x:a:y:([x,y] = {{x}, {x, {y}}}).
cnf(ordered_pair,axiom,
unordered_pair(singleton(X),unordered_pair(X,singleton(Y))) = ordered_pair(X,Y) ).
%----Axiom B-5'a: Cartesian product.
%----a:u:a:v:a:y:(([u,v] e cross_product(x,y)) <=> (u e x) & (v e y)).
%----Singleton variables OK.
cnf(cartesian_product1,axiom,
( ~ member(ordered_pair(U,V),cross_product(X,Y))
| member(U,X) ) ).
%----Singleton variables OK.
cnf(cartesian_product2,axiom,
( ~ member(ordered_pair(U,V),cross_product(X,Y))
| member(V,Y) ) ).
cnf(cartesian_product3,axiom,
( ~ member(U,X)
| ~ member(V,Y)
| member(ordered_pair(U,V),cross_product(X,Y)) ) ).
%----See Theorem (OP6) for 1st and 2nd.
%----Axiom B-5'b: Cartesian product.
%----a:z:(z e cross_product(x,y) --> ([first(z),second(z)] = z)
%----Singleton variables OK.
cnf(cartesian_product4,axiom,
( ~ member(Z,cross_product(X,Y))
| ordered_pair(first(Z),second(Z)) = Z ) ).
%----Axiom B-1: E (element relation).
%----(E < cross_product(universal_class,universal_class)).
%----a:x:a:y:(([x,y] e E) <=> ([x,y] e cross_product(universal_class,
%----universal_class)) (x e y)).
cnf(element_relation1,axiom,
subclass(element_relation,cross_product(universal_class,universal_class)) ).
cnf(element_relation2,axiom,
( ~ member(ordered_pair(X,Y),element_relation)
| member(X,Y) ) ).
cnf(element_relation3,axiom,
( ~ member(ordered_pair(X,Y),cross_product(universal_class,universal_class))
| ~ member(X,Y)
| member(ordered_pair(X,Y),element_relation) ) ).
%----Axiom B-2: * (intersection).
%----a:z:a:x:a:y:((z e (x * y)) <=> (z e x) & (z e y)).
%----Singleton variables OK.
cnf(intersection1,axiom,
( ~ member(Z,intersection(X,Y))
| member(Z,X) ) ).
%----Singleton variables OK.
cnf(intersection2,axiom,
( ~ member(Z,intersection(X,Y))
| member(Z,Y) ) ).
cnf(intersection3,axiom,
( ~ member(Z,X)
| ~ member(Z,Y)
| member(Z,intersection(X,Y)) ) ).
%----Axiom B-3: complement.
%----a:z:a:x:((z e ~(x)) <=> (z e universal_class) & -(z e x)).
cnf(complement1,axiom,
( ~ member(Z,complement(X))
| ~ member(Z,X) ) ).
cnf(complement2,axiom,
( ~ member(Z,universal_class)
| member(Z,complement(X))
| member(Z,X) ) ).
%---- Theorem (SP2) introduces the null class O.
%----Definition of + (union).
%----a:x:a:y:((x + y) = ~((~(x) * ~(y)))).
cnf(union,axiom,
complement(intersection(complement(X),complement(Y))) = union(X,Y) ).
%----Definition of & (exclusive or). (= symmetric difference).
%----a:x:a:y:((x y) = (~(x * y) * ~(~(x) * ~(y)))).
cnf(symmetric_difference,axiom,
intersection(complement(intersection(X,Y)),complement(intersection(complement(X),complement(Y)))) = symmetric_difference(X,Y) ).
%----Definition of restriction.
%----a:x(restrict(xr,x,y) = (xr * cross_product(x,y))).
%----This is extra to the paper
cnf(restriction1,axiom,
intersection(Xr,cross_product(X,Y)) = restrict(Xr,X,Y) ).
cnf(restriction2,axiom,
intersection(cross_product(X,Y),Xr) = restrict(Xr,X,Y) ).
%----Axiom B-4: D (domain_of).
%----a:y:a:z:((z e domain_of(x)) <=> (z e universal_class) &
%---- -(restrict(x,{z},universal_class) = O)).
%----next is subsumed by A-2.
%------> (domain_of(x) < universal_class).
cnf(domain1,axiom,
( restrict(X,singleton(Z),universal_class) != null_class
| ~ member(Z,domain_of(X)) ) ).
cnf(domain2,axiom,
( ~ member(Z,universal_class)
| restrict(X,singleton(Z),universal_class) = null_class
| member(Z,domain_of(X)) ) ).
%----Axiom B-7: rotate.
%----a:x:(rotate(x) < cross_product(cross_product(universal_class,
%----universal_class),universal_class)).
%----a:x:a:u:a:v:a:w:(([[u,v],w] e rotate(x)) <=> ([[u,v],w]]
%---- e cross_product(cross_product(universal_class,universal_class),
%----universal_class)) & ([[v,w],u]] e x).
%----Singleton variables OK.
cnf(rotate1,axiom,
subclass(rotate(X),cross_product(cross_product(universal_class,universal_class),universal_class)) ).
cnf(rotate2,axiom,
( ~ member(ordered_pair(ordered_pair(U,V),W),rotate(X))
| member(ordered_pair(ordered_pair(V,W),U),X) ) ).
cnf(rotate3,axiom,
( ~ member(ordered_pair(ordered_pair(V,W),U),X)
| ~ member(ordered_pair(ordered_pair(U,V),W),cross_product(cross_product(universal_class,universal_class),universal_class))
| member(ordered_pair(ordered_pair(U,V),W),rotate(X)) ) ).
%----Axiom B-8: flip.
%----a:x:(flip(x) < cross_product(cross_product(universal_class,
%----universal_class),universal_class)).
%----a:z:a:u:a:v:a:w:(([[u,v],w] e flip(x)) <=> ([[u,v],w]
%----e cross_product(cross_product(universal_class,universal_class),
%----universal_class)) & ([[v,u],w] e x).
%----Singleton variables OK.
cnf(flip1,axiom,
subclass(flip(X),cross_product(cross_product(universal_class,universal_class),universal_class)) ).
cnf(flip2,axiom,
( ~ member(ordered_pair(ordered_pair(U,V),W),flip(X))
| member(ordered_pair(ordered_pair(V,U),W),X) ) ).
cnf(flip3,axiom,
( ~ member(ordered_pair(ordered_pair(V,U),W),X)
| ~ member(ordered_pair(ordered_pair(U,V),W),cross_product(cross_product(universal_class,universal_class),universal_class))
| member(ordered_pair(ordered_pair(U,V),W),flip(X)) ) ).
%----Definition of inverse.
%----a:y:(inverse(y) = domain_of(flip(cross_product(y,V)))).
cnf(inverse,axiom,
domain_of(flip(cross_product(Y,universal_class))) = inverse(Y) ).
%----Definition of R (range_of).
%----a:z:(range_of(z) = domain_of(inverse(z))).
cnf(range_of,axiom,
domain_of(inverse(Z)) = range_of(Z) ).
%----Definition of domain.
%----a:z:a:x:a:y:(domain(z,x,y) = first(notsub(restrict(z,x,{y}),O))).
cnf(domain,axiom,
first(not_subclass_element(restrict(Z,X,singleton(Y)),null_class)) = domain(Z,X,Y) ).
%----Definition of range.
%----a:z:a:x:(range(z,x,y) = second(notsub(restrict(z,{x},y),O))).
cnf(range,axiom,
second(not_subclass_element(restrict(Z,singleton(X),Y),null_class)) = range(Z,X,Y) ).
%----Definition of image.
%----a:x:a:xr:((xr image x) = range_of(restrict(xr,x,V))).
cnf(image,axiom,
range_of(restrict(Xr,X,universal_class)) = image(Xr,X) ).
%----Definition of successor.
%----a:x:(successor(x) = (x + {x})).
cnf(successor,axiom,
union(X,singleton(X)) = successor(X) ).
%----Explicit definition of successor_relation.
%------> ((cross_product(V,V) * ~(((E ^ ~(inverse((E + I)))) +
%----(~(E) ^ inverse((E + I)))))) = successor_relation).
%----Definition of successor_relation from the Class Existence Theorem.
%----a:x:a:y:([x,y] e successor_relation <=> x e V & successor(x) = y).
%----The above FOF does not agree with the book
cnf(successor_relation1,axiom,
subclass(successor_relation,cross_product(universal_class,universal_class)) ).
cnf(successor_relation2,axiom,
( ~ member(ordered_pair(X,Y),successor_relation)
| successor(X) = Y ) ).
%----This is what's in the book and paper. Does not change axiom.
% input_clause(successor_relation3,axiom,
% [--equal(successor(X),Y),
% --member(X,universal_class),
% ++member(ordered_pair(X,Y),successor_relation)]).
%----This is what I got by email from Quaife
cnf(successor_relation3,axiom,
( successor(X) != Y
| ~ member(ordered_pair(X,Y),cross_product(universal_class,universal_class))
| member(ordered_pair(X,Y),successor_relation) ) ).
%----Definition of inductive a:x:(inductive(x) <=> null_class
%----e x & (successor_relation image x) < x)).
cnf(inductive1,axiom,
( ~ inductive(X)
| member(null_class,X) ) ).
cnf(inductive2,axiom,
( ~ inductive(X)
| subclass(image(successor_relation,X),X) ) ).
cnf(inductive3,axiom,
( ~ member(null_class,X)
| ~ subclass(image(successor_relation,X),X)
| inductive(X) ) ).
%----Axiom C-1: infinity.
%----e:x:((x e V) & inductive(x) & a:y:(inductive(y) ==> (x < y))).
%----e:x:((x e V) & (O e x) & ((successor_relation image x) < x)
%---- & a:y:((O e y) & ((successor_relation image y) < y) ==>
%----(x < y))).
cnf(omega_is_inductive1,axiom,
inductive(omega) ).
cnf(omega_is_inductive2,axiom,
( ~ inductive(Y)
| subclass(omega,Y) ) ).
cnf(omega_in_universal,axiom,
member(omega,universal_class) ).
%----These were commented out in the set Quaife sent me, and are not
%----in the paper true --> (null_class e omega).
%----true --> ((successor_relation image omega) < omega).
%----(null_class e y), ((successor_relation image y) < y) -->
%----(omega < y). true --> (omega e universal_class).
%----Definition of U (sum class).
%----a:x:(sum_class(x) = domain_of(restrict(E,V,x))).
cnf(sum_class_definition,axiom,
domain_of(restrict(element_relation,universal_class,X)) = sum_class(X) ).
%----Axiom C-2: U (sum class).
%----a:x:((x e V) ==> (sum_class(x) e V)).
cnf(sum_class2,axiom,
( ~ member(X,universal_class)
| member(sum_class(X),universal_class) ) ).
%----Definition of P (power class).
%----a:x:(power_class(x) = ~((E image ~(x)))).
cnf(power_class_definition,axiom,
complement(image(element_relation,complement(X))) = power_class(X) ).
%----Axiom C-3: P (power class).
%----a:u:((u e V) ==> (power_class(u) e V)).
cnf(power_class2,axiom,
( ~ member(U,universal_class)
| member(power_class(U),universal_class) ) ).
%----Definition of compose.
%----a:xr:a:yr:((yr ^ xr) < cross_product(V,V)).
%----a:u:a:v:a:xr:a:yr:(([u,v] e (yr ^ xr)) <=> ([u,v]
%----e cross_product(V,V)) & (v e (yr image (xr image {u})))).
%----Singleton variables OK.
cnf(compose1,axiom,
subclass(compose(Yr,Xr),cross_product(universal_class,universal_class)) ).
cnf(compose2,axiom,
( ~ member(ordered_pair(Y,Z),compose(Yr,Xr))
| member(Z,image(Yr,image(Xr,singleton(Y)))) ) ).
cnf(compose3,axiom,
( ~ member(Z,image(Yr,image(Xr,singleton(Y))))
| ~ member(ordered_pair(Y,Z),cross_product(universal_class,universal_class))
| member(ordered_pair(Y,Z),compose(Yr,Xr)) ) ).
%----7/21/90 eliminate SINGVAL and just use FUNCTION.
%----Not eliminated in TPTP - I'm following the paper
cnf(single_valued_class1,axiom,
( ~ single_valued_class(X)
| subclass(compose(X,inverse(X)),identity_relation) ) ).
cnf(single_valued_class2,axiom,
( ~ subclass(compose(X,inverse(X)),identity_relation)
| single_valued_class(X) ) ).
%----Definition of function.
%----a:xf:(function(xf) <=> (xf < cross_product(V,V)) & ((xf
%----^ inverse(xf)) < identity_relation)).
cnf(function1,axiom,
( ~ function(Xf)
| subclass(Xf,cross_product(universal_class,universal_class)) ) ).
cnf(function2,axiom,
( ~ function(Xf)
| subclass(compose(Xf,inverse(Xf)),identity_relation) ) ).
cnf(function3,axiom,
( ~ subclass(Xf,cross_product(universal_class,universal_class))
| ~ subclass(compose(Xf,inverse(Xf)),identity_relation)
| function(Xf) ) ).
%----Axiom C-4: replacement.
%----a:x:((x e V) & function(xf) ==> ((xf image x) e V)).
cnf(replacement,axiom,
( ~ function(Xf)
| ~ member(X,universal_class)
| member(image(Xf,X),universal_class) ) ).
%----Axiom D: regularity.
%----a:x:(-(x = O) ==> e:u:((u e V) & (u e x) & ((u * x) = O))).
cnf(regularity1,axiom,
( X = null_class
| member(regular(X),X) ) ).
cnf(regularity2,axiom,
( X = null_class
| intersection(X,regular(X)) = null_class ) ).
%----Definition of apply (apply).
%----a:xf:a:y:((xf apply y) = sum_class((xf image {y}))).
cnf(apply,axiom,
sum_class(image(Xf,singleton(Y))) = apply(Xf,Y) ).
%----Axiom E: universal choice.
%----e:xf:(function(xf) & a:y:((y e V) ==> (y = null_class) |
%----((xf apply y) e y))).
cnf(choice1,axiom,
function(choice) ).
cnf(choice2,axiom,
( ~ member(Y,universal_class)
| Y = null_class
| member(apply(choice,Y),Y) ) ).
%----GROUP 2: MORE SET THEORY DEFINITIONS.
%----Definition of one_to_one (one-to-one function).
%----a:xf:(one_to_one(xf) <=> function(xf) & function(inverse(xf))).
cnf(one_to_one1,axiom,
( ~ one_to_one(Xf)
| function(Xf) ) ).
cnf(one_to_one2,axiom,
( ~ one_to_one(Xf)
| function(inverse(Xf)) ) ).
cnf(one_to_one3,axiom,
( ~ function(inverse(Xf))
| ~ function(Xf)
| one_to_one(Xf) ) ).
%----Definition of S (subset relation).
cnf(subset_relation,axiom,
intersection(cross_product(universal_class,universal_class),intersection(cross_product(universal_class,universal_class),complement(compose(complement(element_relation),inverse(element_relation))))) = subset_relation ).
%----Definition of I (identity relation).
cnf(identity_relation,axiom,
intersection(inverse(subset_relation),subset_relation) = identity_relation ).
%----Definition of diagonalization.
%----a:xr:(diagonalise(xr) = ~(domain_of((identity_relation * xr)))).
cnf(diagonalisation,axiom,
complement(domain_of(intersection(Xr,identity_relation))) = diagonalise(Xr) ).
%----Definition of Cantor class.
cnf(cantor_class,axiom,
intersection(domain_of(X),diagonalise(compose(inverse(element_relation),X))) = cantor(X) ).
%----Definition of operation.
%----a:xf:(operation(xf) <=> function(xf) & (cross_product(domain_of(
%----domain_of(xf)),domain_of(domain_of(xf))) = domain_of(xf))
%----& (range_of(xf) < domain_of(domain_of(xf))).
cnf(operation1,axiom,
( ~ operation(Xf)
| function(Xf) ) ).
cnf(operation2,axiom,
( ~ operation(Xf)
| cross_product(domain_of(domain_of(Xf)),domain_of(domain_of(Xf))) = domain_of(Xf) ) ).
cnf(operation3,axiom,
( ~ operation(Xf)
| subclass(range_of(Xf),domain_of(domain_of(Xf))) ) ).
cnf(operation4,axiom,
( ~ function(Xf)
| cross_product(domain_of(domain_of(Xf)),domain_of(domain_of(Xf))) != domain_of(Xf)
| ~ subclass(range_of(Xf),domain_of(domain_of(Xf)))
| operation(Xf) ) ).
%----Definition of compatible.
%----a:xh:a:xf1:a:af2: (compatible(xh,xf1,xf2) <=> function(xh)
%----& (domain_of(domain_of(xf1)) = domain_of(xh)) & (range_of(xh)
%----< domain_of(domain_of(xf2)))).
%----Singleton variables OK.
cnf(compatible1,axiom,
( ~ compatible(Xh,Xf1,Xf2)
| function(Xh) ) ).
%----Singleton variables OK.
cnf(compatible2,axiom,
( ~ compatible(Xh,Xf1,Xf2)
| domain_of(domain_of(Xf1)) = domain_of(Xh) ) ).
%----Singleton variables OK.
cnf(compatible3,axiom,
( ~ compatible(Xh,Xf1,Xf2)
| subclass(range_of(Xh),domain_of(domain_of(Xf2))) ) ).
cnf(compatible4,axiom,
( ~ function(Xh)
| domain_of(domain_of(Xf1)) != domain_of(Xh)
| ~ subclass(range_of(Xh),domain_of(domain_of(Xf2)))
| compatible(Xh,Xf1,Xf2) ) ).
%----Definition of homomorphism.
%----a:xh:a:xf1:a:xf2: (homomorphism(xh,xf1,xf2) <=>
%---- operation(xf1) & operation(xf2) & compatible(xh,xf1,xf2) &
%---- a:x:a:y:(([x,y] e domain_of(xf1)) ==> (((xf2 apply [(xh apply x),
%----(xh apply y)]) = (xh apply (xf1 apply [x,y])))).
%----Singleton variables OK.
cnf(homomorphism1,axiom,
( ~ homomorphism(Xh,Xf1,Xf2)
| operation(Xf1) ) ).
%----Singleton variables OK.
cnf(homomorphism2,axiom,
( ~ homomorphism(Xh,Xf1,Xf2)
| operation(Xf2) ) ).
cnf(homomorphism3,axiom,
( ~ homomorphism(Xh,Xf1,Xf2)
| compatible(Xh,Xf1,Xf2) ) ).
cnf(homomorphism4,axiom,
( ~ homomorphism(Xh,Xf1,Xf2)
| ~ member(ordered_pair(X,Y),domain_of(Xf1))
| apply(Xf2,ordered_pair(apply(Xh,X),apply(Xh,Y))) = apply(Xh,apply(Xf1,ordered_pair(X,Y))) ) ).
cnf(homomorphism5,axiom,
( ~ operation(Xf1)
| ~ operation(Xf2)
| ~ compatible(Xh,Xf1,Xf2)
| member(ordered_pair(not_homomorphism1(Xh,Xf1,Xf2),not_homomorphism2(Xh,Xf1,Xf2)),domain_of(Xf1))
| homomorphism(Xh,Xf1,Xf2) ) ).
cnf(homomorphism6,axiom,
( ~ operation(Xf1)
| ~ operation(Xf2)
| ~ compatible(Xh,Xf1,Xf2)
| apply(Xf2,ordered_pair(apply(Xh,not_homomorphism1(Xh,Xf1,Xf2)),apply(Xh,not_homomorphism2(Xh,Xf1,Xf2)))) != apply(Xh,apply(Xf1,ordered_pair(not_homomorphism1(Xh,Xf1,Xf2),not_homomorphism2(Xh,Xf1,Xf2))))
| homomorphism(Xh,Xf1,Xf2) ) ).
%--------------------------------------------------------------------------
./SET004-1.ax
%--------------------------------------------------------------------------
% File : SET004-1 : TPTP v8.2.0. Bugfixed v1.0.1.
% Domain : Set Theory (Boolean Algebra definitions)
% Axioms : Set theory (Boolean algebra) axioms based on NBG set theory
% Version : [Qua92a] axioms.
% English :
% Refs : [Qua92a] Quaife (1992), Automated Deduction in von Neumann-Bern
% : [Qua92b] Quaife (1992), Email to G. Sutcliffe
% Source : [Qua92b]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 21 ( 8 unt; 0 nHn; 17 RR)
% Number of literals : 37 ( 10 equ; 16 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 26 ( 26 usr; 7 con; 0-3 aty)
% Number of variables : 38 ( 7 sgn)
% SPC :
% Comments : Requires SET004-0.ax
% : Not all of these definitions appear in [Qua92a]. Some were
% extracted from [Qua92b]
% Bugfixes : v1.0.1 - Duplicate axioms single_valued_term_defn? removed.
%--------------------------------------------------------------------------
%----(CO25DEF): Definition of compose_class(x) term, where x may
%----be a class. Not in [Quaife, 1992].
cnf(compose_class_definition1,axiom,
subclass(compose_class(X),cross_product(universal_class,universal_class)) ).
cnf(compose_class_definition2,axiom,
( ~ member(ordered_pair(Y,Z),compose_class(X))
| compose(X,Y) = Z ) ).
cnf(compose_class_definition3,axiom,
( ~ member(ordered_pair(Y,Z),cross_product(universal_class,universal_class))
| compose(X,Y) != Z
| member(ordered_pair(Y,Z),compose_class(X)) ) ).
%----(CO20DEF): Definition of composition_function. Not in [Quaife,
%----1992].
cnf(definition_of_composition_function1,axiom,
subclass(composition_function,cross_product(universal_class,cross_product(universal_class,universal_class))) ).
cnf(definition_of_composition_function2,axiom,
( ~ member(ordered_pair(X,ordered_pair(Y,Z)),composition_function)
| compose(X,Y) = Z ) ).
cnf(definition_of_composition_function3,axiom,
( ~ member(ordered_pair(X,Y),cross_product(universal_class,universal_class))
| member(ordered_pair(X,ordered_pair(Y,compose(X,Y))),composition_function) ) ).
%----(DODEF11): Definition of domain_relation by the class existence
%----theorem. Not in [Quaife, 19992].
cnf(definition_of_domain_relation1,axiom,
subclass(domain_relation,cross_product(universal_class,universal_class)) ).
cnf(definition_of_domain_relation2,axiom,
( ~ member(ordered_pair(X,Y),domain_relation)
| domain_of(X) = Y ) ).
cnf(definition_of_domain_relation3,axiom,
( ~ member(X,universal_class)
| member(ordered_pair(X,domain_of(X)),domain_relation) ) ).
%----(SV2DEF) Definitions of terms for (SV3) Called FU2DEF in Quaife's
%----email
cnf(single_valued_term_defn1,axiom,
first(not_subclass_element(compose(X,inverse(X)),identity_relation)) = single_valued1(X) ).
cnf(single_valued_term_defn2,axiom,
second(not_subclass_element(compose(X,inverse(X)),identity_relation)) = single_valued2(X) ).
cnf(single_valued_term_defn3,axiom,
domain(X,image(inverse(X),singleton(single_valued1(X))),single_valued2(X)) = single_valued3(X) ).
%----(CO14DEF): Definition of singleton relation.
cnf(compose_can_define_singleton,axiom,
intersection(complement(compose(element_relation,complement(identity_relation))),element_relation) = singleton_relation ).
%----(AP15): definition of application function. Not in [Qua92]
cnf(application_function_defn1,axiom,
subclass(application_function,cross_product(universal_class,cross_product(universal_class,universal_class))) ).
cnf(application_function_defn2,axiom,
( ~ member(ordered_pair(X,ordered_pair(Y,Z)),application_function)
| member(Y,domain_of(X)) ) ).
cnf(application_function_defn3,axiom,
( ~ member(ordered_pair(X,ordered_pair(Y,Z)),application_function)
| apply(X,Y) = Z ) ).
cnf(application_function_defn4,axiom,
( ~ member(ordered_pair(X,ordered_pair(Y,Z)),cross_product(universal_class,cross_product(universal_class,universal_class)))
| ~ member(Y,domain_of(X))
| member(ordered_pair(X,ordered_pair(Y,apply(X,Y))),application_function) ) ).
%----Definition of maps. Not in [Qua92].
%----a:xf:a:x:a:y:(maps(xf,x,y) <=> function(xf) & domain(xf)
%----= x & range(xf) < y).
cnf(maps1,axiom,
( ~ maps(Xf,X,Y)
| function(Xf) ) ).
cnf(maps2,axiom,
( ~ maps(Xf,X,Y)
| domain_of(Xf) = X ) ).
cnf(maps3,axiom,
( ~ maps(Xf,X,Y)
| subclass(range_of(Xf),Y) ) ).
cnf(maps4,axiom,
( ~ function(Xf)
| ~ subclass(range_of(Xf),Y)
| maps(Xf,domain_of(Xf),Y) ) ).
%--------------------------------------------------------------------------
./SET005+0.ax
%--------------------------------------------------------------------------
% File : SET005+0 : TPTP v8.2.0. Bugfixed v5.4.0.
% Domain : Set Theory
% Axioms : Set theory axioms based on NBG set theory
% Version : [Quaife, 1992] axioms : Reduced & Augmented > Complete.
% English :
% Refs : [Qua92] Quaife (1992), Automated Deduction in von Neumann-Bern
% : [BL+86] Boyer et al. (1986), Set Theory in First-Order Logic:
% Source : [Qua92]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 43 ( 16 unt; 0 def)
% Number of atoms : 100 ( 19 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 62 ( 5 ~; 3 |; 26 &)
% ( 19 <=>; 9 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 4 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 1-2 aty)
% Number of functors : 26 ( 26 usr; 5 con; 0-3 aty)
% Number of variables : 86 ( 81 !; 5 ?)
% SPC :
% Comments :
% Bugfixes : v5.4.0 - Fixed compose_defn2, added first_second, added
% identity_relation.
%--------------------------------------------------------------------------
%----Axiom A-1: Sets are classes (omitted because all objects are
%----classes).
% input_formula(sets_are_classes,axiom,
% ! [X] :
% (m(X) => cls(X))).
%----Definition of subclass. By doing this early, following axioms are
%----simplified. See A-2 for a clear example. This is what Mendelson does.
fof(subclass_defn,axiom,
! [X,Y] :
( subclass(X,Y)
<=> ! [U] :
( member(U,X)
=> member(U,Y) ) ) ).
%----Axiom A-2: Elements of classes are sets.
fof(class_elements_are_sets,axiom,
! [X] : subclass(X,universal_class) ).
%----Axiom A-3: Principle of extensionality. Quaife notes that this is
%----different from the Boyer version. It is the Mendelson version.
fof(extensionality,axiom,
! [X,Y] :
( X = Y
<=> ( subclass(X,Y)
& subclass(Y,X) ) ) ).
%----Axiom A-4: Existence of unordered pair
fof(unordered_pair_defn,axiom,
! [U,X,Y] :
( member(U,unordered_pair(X,Y))
<=> ( member(U,universal_class)
& ( U = X
| U = Y ) ) ) ).
%----Quaife says "if I were to do it again I'd use ..."
%----McCune recommends not doing this, so I havn't
% input_formula(unordered_pair1,axiom,(
% ! [U,X,Y] :
% ( member(U,unordered_pair(X,Y))
% <=> ( member(U,universal_class)
% & ( equal(U,X)
% | member(U,Y) ) ) ) )).
fof(unordered_pair,axiom,
! [X,Y] : member(unordered_pair(X,Y),universal_class) ).
%----Definition of singleton set, needed for ordered pair.
fof(singleton_set_defn,axiom,
! [X] : singleton(X) = unordered_pair(X,X) ).
%----Definition of ordered pair, needed for B-5
fof(ordered_pair_defn,axiom,
! [X,Y] : ordered_pair(X,Y) = unordered_pair(singleton(X),unordered_pair(X,singleton(Y))) ).
%----This is different from Goedel where it is
% input_formula(ordered_pair,axiom,(
% ! [X,Y] : equal(ordered_pair(X,Y),unordered_pair(singleton(X),
% unordered_pair(X,Y))) )).
%----This is motivated in Quaife's book p. 30 Section 3.5.
%----Axiom B-5: Cartesian product (not explicitly defined in Goedel)
%----Brought forward so cross_product can be used in B-1
%----In this and some other axioms, Goedel's axioms use existential
%----quantification rather than explicit definition.
fof(cross_product_defn,axiom,
! [U,V,X,Y] :
( member(ordered_pair(U,V),cross_product(X,Y))
<=> ( member(U,X)
& member(V,Y) ) ) ).
%----Added axiom to define first and second, which are introduced as Skolem
%----functions in the CNF versions of theorem OP6.
fof(first_second,axiom,
! [X,Y] :
( ( member(X,universal_class)
& member(Y,universal_class) )
=> ( first(ordered_pair(X,Y)) = X
& second(ordered_pair(X,Y)) = Y ) ) ).
fof(cross_product,axiom,
! [X,Y,Z] :
( member(Z,cross_product(X,Y))
=> Z = ordered_pair(first(Z),second(Z)) ) ).
%----Axiom B-1: Element relation (not explicitly defined in Goedel)
%----This is an example of undoing a simplification made by Quaife for
%----CNF systems (see book p. 28, Section 3.4).
fof(element_relation_defn,axiom,
! [X,Y] :
( member(ordered_pair(X,Y),element_relation)
<=> ( member(Y,universal_class)
& member(X,Y) ) ) ).
%----Quaife's version included member(X,universal_class) in the RHS of the
%----<=>, but that's not required as member(X,Y) => member(X,universal_class)
%----The equiavlence of the two forms has been proved.
fof(element_relation,axiom,
subclass(element_relation,cross_product(universal_class,universal_class)) ).
%----Axiom B-2: Intersection (not explicitly defined in Goedel)
fof(intersection,axiom,
! [X,Y,Z] :
( member(Z,intersection(X,Y))
<=> ( member(Z,X)
& member(Z,Y) ) ) ).
%----Axiom B-3: Complement (not explicitly defined in Goedel)
fof(complement,axiom,
! [X,Z] :
( member(Z,complement(X))
<=> ( member(Z,universal_class)
& ~ member(Z,X) ) ) ).
%----Quaife has the definitions for union and symmetric difference in here
%----(about). I have moved union to later where it is needed. Symmetric
%----difference is not needed for Goedel's axioms, so I have moved it to
%----SET005+1.ax
%----Definition of restrict. Needed for B-4 domain_of
fof(restrict_defn,axiom,
! [X,XR,Y] : restrict(XR,X,Y) = intersection(XR,cross_product(X,Y)) ).
%----Definition of null_class. Needed for B-4 domain_of
%----This is dependent, but Plaisted says it's unreasonable to omit it.
fof(null_class_defn,axiom,
! [X] : ~ member(X,null_class) ).
%----Axiom B-4: Domain of (not explicitly defined in Goedel)
fof(domain_of,axiom,
! [X,Z] :
( member(Z,domain_of(X))
<=> ( member(Z,universal_class)
& restrict(X,singleton(Z),universal_class) != null_class ) ) ).
%----Axiom B-5 is earlier as it defines cross_product, used in B-1
%----Axiom B-6 is proved as a theorem
%----Axiom B-7: Existence of rotate (not explicitly defined in Goedel)
fof(rotate_defn,axiom,
! [X,U,V,W] :
( member(ordered_pair(ordered_pair(U,V),W),rotate(X))
<=> ( member(ordered_pair(ordered_pair(U,V),W),cross_product(cross_product(universal_class,universal_class),universal_class))
& member(ordered_pair(ordered_pair(V,W),U),X) ) ) ).
fof(rotate,axiom,
! [X] : subclass(rotate(X),cross_product(cross_product(universal_class,universal_class),universal_class)) ).
%----Axiom B-8: Existence of flip (not explicitly defined in Goedel)
fof(flip_defn,axiom,
! [U,V,W,X] :
( member(ordered_pair(ordered_pair(U,V),W),flip(X))
<=> ( member(ordered_pair(ordered_pair(U,V),W),cross_product(cross_product(universal_class,universal_class),universal_class))
& member(ordered_pair(ordered_pair(V,U),W),X) ) ) ).
fof(flip,axiom,
! [X] : subclass(flip(X),cross_product(cross_product(universal_class,universal_class),universal_class)) ).
%----I have removed the definitions of range and domain to SET005+1
%----as they are not needed for Goedel's axioms.
%----Plaisted's definition of union. Needed for successor
fof(union_defn,axiom,
! [X,Y,Z] :
( member(Z,union(X,Y))
<=> ( member(Z,X)
| member(Z,Y) ) ) ).
%----This is Quaife's original definition of union, which David Plaisted
%----suggested is unnatural ...
% input_formula(union_defn_quaife,axiom,(
% ! [X,Y] : equal(union(X,Y),complement(intersection(complement(X),
% complement(Y)))) )).
%----Quaife's definition can be shown equivalent Plaisted's by showing each is
%----equivalent to this one ...
% input_formula(union_defn_geoff,axiom,(
% ! [X,Y,Z] :
% ( member(Z,union(X,Y))
% <=> member(Z,complement(intersection(complement(X),complement(Y))))) )).
%----as an intermediate
%----Definition of successor. Needed for successor_relation
fof(successor_defn,axiom,
! [X] : successor(X) = union(X,singleton(X)) ).
%----Definition of successor_relation. Needed for inductive.
fof(successor_relation_defn1,axiom,
subclass(successor_relation,cross_product(universal_class,universal_class)) ).
%----This undoes the Quaife simplification from book p.28 Section 3.4
fof(successor_relation_defn2,axiom,
! [X,Y] :
( member(ordered_pair(X,Y),successor_relation)
<=> ( member(X,universal_class)
& member(Y,universal_class)
& successor(X) = Y ) ) ).
%----Definition of inverse (not explicitly defined in Goedel)
%----Needed for range_of
fof(inverse_defn,axiom,
! [Y] : inverse(Y) = domain_of(flip(cross_product(Y,universal_class))) ).
%----Definition of range_of. Needed for image.
fof(range_of_defn,axiom,
! [Z] : range_of(Z) = domain_of(inverse(Z)) ).
%----Definition of image. Needed for inductive.
fof(image_defn,axiom,
! [X,XR] : image(XR,X) = range_of(restrict(XR,X,universal_class)) ).
%----Definition of inductive. Needed for C-1: Infinity
fof(inductive_defn,axiom,
! [X] :
( inductive(X)
<=> ( member(null_class,X)
& subclass(image(successor_relation,X),X) ) ) ).
%----Axiom C-1: Infinity
fof(infinity,axiom,
? [X] :
( member(X,universal_class)
& inductive(X)
& ! [Y] :
( inductive(Y)
=> subclass(X,Y) ) ) ).
%----Axiom C-2: Sum_class (not explicitly defined in Goedel)
fof(sum_class_defn,axiom,
! [U,X] :
( member(U,sum_class(X))
<=> ? [Y] :
( member(U,Y)
& member(Y,X) ) ) ).
%----Here is Quaife's original definition of sum_class, which David Plaisted
%----suggested is unnatural ...
%input_formula(sum_class_defn,axiom,(
% ! [X] : equal(sum_class(X),domain_of(restrict(element_relation,
%universal_class,X))) )).
%----Yunshan Zhu's sum class definition above has been shown equivalent to
%----the original by a longish sequence of equivalences. Boyer et al. also
%----use (a more complicated version of) the above definition.
fof(sum_class,axiom,
! [X] :
( member(X,universal_class)
=> member(sum_class(X),universal_class) ) ).
%----Axiom C-3: Existence of power_class (not explicitly defined in Goedel)
fof(power_class_defn,axiom,
! [U,X] :
( member(U,power_class(X))
<=> ( member(U,universal_class)
& subclass(U,X) ) ) ).
%----Here is Quaife's original definition of power_class, which David Plaisted
%----suggested is unnatural ...
%input_formula(power_class_defn,axiom,(
% ! [X] : equal(power_class(X),complement(image(element_relation,
%complement(X)))) )).
fof(power_class,axiom,
! [U] :
( member(U,universal_class)
=> member(power_class(U),universal_class) ) ).
%----Definition of compose. Needed for function
fof(compose_defn1,axiom,
! [XR,YR] : subclass(compose(YR,XR),cross_product(universal_class,universal_class)) ).
%----This undoes the Quaife simplification from book p.28 Section 3.4, and
%----then simplifies that by removing a member(V,universal_class) from the RHS
fof(compose_defn2,axiom,
! [XR,YR,U,V] :
( member(ordered_pair(U,V),compose(YR,XR))
<=> ( member(U,universal_class)
& member(V,image(YR,image(XR,singleton(U)))) ) ) ).
%----Definition of single_valued_class. Needed for function
%----Quaife suggests not using this, in his book p.35
%input_formula(single_valued_class_defn,axiom,(
% ! [X] :
% ( single_valued_class(X)
% <=> subclass(compose(X,inverse(X)),identity_relation) ) )).
%----Added definition of identity_relation (missing from Quaife)
fof(identity_relation,axiom,
! [Z] :
( member(Z,identity_relation)
<=> ? [X] :
( member(X,universal_class)
& Z = ordered_pair(X,X) ) ) ).
%----Definition of function. Needed for C-4: replacement
fof(function_defn,axiom,
! [XF] :
( function(XF)
<=> ( subclass(XF,cross_product(universal_class,universal_class))
& subclass(compose(XF,inverse(XF)),identity_relation) ) ) ).
%----Axiom C-4: Replacement
fof(replacement,axiom,
! [X,XF] :
( ( member(X,universal_class)
& function(XF) )
=> member(image(XF,X),universal_class) ) ).
%----Definition of disjoint. This is omitted by Quaife
fof(disjoint_defn,axiom,
! [X,Y] :
( disjoint(X,Y)
<=> ! [U] :
~ ( member(U,X)
& member(U,Y) ) ) ).
%----Axiom D: Regularity
%----This also provides a definition of the null_class of the form
%----! [X] : ( equal(X,null_class) <= ! [U] : ~ member(U,X) )
fof(regularity,axiom,
! [X] :
( X != null_class
=> ? [U] :
( member(U,universal_class)
& member(U,X)
& disjoint(U,X) ) ) ).
%----Definition of apply. Needed for universal choice
fof(apply_defn,axiom,
! [XF,Y] : apply(XF,Y) = sum_class(image(XF,singleton(Y))) ).
%----Axiom E: Universal choice
fof(choice,axiom,
? [XF] :
( function(XF)
& ! [Y] :
( member(Y,universal_class)
=> ( Y = null_class
| member(apply(XF,Y),Y) ) ) ) ).
%--------------------------------------------------------------------------
./SET006+0.ax
%------------------------------------------------------------------------------
% File : SET006+0 : TPTP v8.2.0. Released v2.2.0.
% Domain : Set Theory
% Axioms : Naive set theory based on Goedel's set theory
% Version : [Pas99] axioms.
% English :
% Refs : [Pas99] Pastre (1999), Email to G. Sutcliffe
% Source : [Pas99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 11 ( 1 unt; 0 def)
% Number of atoms : 29 ( 3 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 20 ( 2 ~; 2 |; 4 &)
% ( 10 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 4 ( 3 usr; 0 prp; 2-2 aty)
% Number of functors : 9 ( 9 usr; 1 con; 0-2 aty)
% Number of variables : 28 ( 27 !; 1 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Axioms of operations on sets
fof(subset,axiom,
! [A,B] :
( subset(A,B)
<=> ! [X] :
( member(X,A)
=> member(X,B) ) ) ).
fof(equal_set,axiom,
! [A,B] :
( equal_set(A,B)
<=> ( subset(A,B)
& subset(B,A) ) ) ).
fof(power_set,axiom,
! [X,A] :
( member(X,power_set(A))
<=> subset(X,A) ) ).
fof(intersection,axiom,
! [X,A,B] :
( member(X,intersection(A,B))
<=> ( member(X,A)
& member(X,B) ) ) ).
fof(union,axiom,
! [X,A,B] :
( member(X,union(A,B))
<=> ( member(X,A)
| member(X,B) ) ) ).
fof(empty_set,axiom,
! [X] : ~ member(X,empty_set) ).
fof(difference,axiom,
! [B,A,E] :
( member(B,difference(E,A))
<=> ( member(B,E)
& ~ member(B,A) ) ) ).
fof(singleton,axiom,
! [X,A] :
( member(X,singleton(A))
<=> X = A ) ).
fof(unordered_pair,axiom,
! [X,A,B] :
( member(X,unordered_pair(A,B))
<=> ( X = A
| X = B ) ) ).
fof(sum,axiom,
! [X,A] :
( member(X,sum(A))
<=> ? [Y] :
( member(Y,A)
& member(X,Y) ) ) ).
fof(product,axiom,
! [X,A] :
( member(X,product(A))
<=> ! [Y] :
( member(Y,A)
=> member(X,Y) ) ) ).
%------------------------------------------------------------------------------
./SET006+1.ax
%------------------------------------------------------------------------------
% File : SET006+1 : TPTP v8.2.0. Bugfixed v2.2.1.
% Domain : Set Theory
% Axioms : Mapping axioms for the SET006+0 set theory axioms
% Version : [Pas99] axioms.
% English :
% Refs : [Pas99] Pastre (1999), Email to G. Sutcliffe
% Source : [Pas99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 17 ( 0 unt; 0 def)
% Number of atoms : 99 ( 3 equ)
% Maximal formula atoms : 11 ( 5 avg)
% Number of connectives : 82 ( 0 ~; 0 |; 46 &)
% ( 20 <=>; 16 =>; 0 <=; 0 <~>)
% Maximal formula depth : 19 ( 11 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 14 ( 13 usr; 0 prp; 2-6 aty)
% Number of functors : 6 ( 6 usr; 0 con; 2-5 aty)
% Number of variables : 105 ( 97 !; 8 ?)
% SPC :
% Comments : Requires SET006+0.ax
% Bugfixes : v2.2.1 - compose_function and inverse_function fixed.
%------------------------------------------------------------------------------
%----Axiom and properties of mappings
fof(maps,axiom,
! [F,A,B] :
( maps(F,A,B)
<=> ( ! [X] :
( member(X,A)
=> ? [Y] :
( member(Y,B)
& apply(F,X,Y) ) )
& ! [X,Y1,Y2] :
( ( member(X,A)
& member(Y1,B)
& member(Y2,B) )
=> ( ( apply(F,X,Y1)
& apply(F,X,Y2) )
=> Y1 = Y2 ) ) ) ) ).
fof(compose_predicate,axiom,
! [H,G,F,A,B,C] :
( compose_predicate(H,G,F,A,B,C)
<=> ! [X,Z] :
( ( member(X,A)
& member(Z,C) )
=> ( apply(H,X,Z)
<=> ? [Y] :
( member(Y,B)
& apply(F,X,Y)
& apply(G,Y,Z) ) ) ) ) ).
fof(compose_function,axiom,
! [G,F,A,B,C,X,Z] :
( ( member(X,A)
& member(Z,C) )
=> ( apply(compose_function(G,F,A,B,C),X,Z)
<=> ? [Y] :
( member(Y,B)
& apply(F,X,Y)
& apply(G,Y,Z) ) ) ) ).
fof(equal_maps,axiom,
! [F,G,A,B] :
( equal_maps(F,G,A,B)
<=> ! [X,Y1,Y2] :
( ( member(X,A)
& member(Y1,B)
& member(Y2,B) )
=> ( ( apply(F,X,Y1)
& apply(G,X,Y2) )
=> Y1 = Y2 ) ) ) ).
fof(identity,axiom,
! [F,A] :
( identity(F,A)
<=> ! [X] :
( member(X,A)
=> apply(F,X,X) ) ) ).
fof(injective,axiom,
! [F,A,B] :
( injective(F,A,B)
<=> ! [X1,X2,Y] :
( ( member(X1,A)
& member(X2,A)
& member(Y,B) )
=> ( ( apply(F,X1,Y)
& apply(F,X2,Y) )
=> X1 = X2 ) ) ) ).
fof(surjective,axiom,
! [F,A,B] :
( surjective(F,A,B)
<=> ! [Y] :
( member(Y,B)
=> ? [E] :
( member(E,A)
& apply(F,E,Y) ) ) ) ).
fof(one_to_one,axiom,
! [F,A,B] :
( one_to_one(F,A,B)
<=> ( injective(F,A,B)
& surjective(F,A,B) ) ) ).
fof(inverse_predicate,axiom,
! [G,F,A,B] :
( inverse_predicate(G,F,A,B)
<=> ! [X,Y] :
( ( member(X,A)
& member(Y,B) )
=> ( apply(F,X,Y)
<=> apply(G,Y,X) ) ) ) ).
fof(inverse_function,axiom,
! [F,A,B,X,Y] :
( ( member(X,A)
& member(Y,B) )
=> ( apply(F,X,Y)
<=> apply(inverse_function(F,A,B),Y,X) ) ) ).
fof(image2,axiom,
! [F,A,Y] :
( member(Y,image2(F,A))
<=> ? [X] :
( member(X,A)
& apply(F,X,Y) ) ) ).
fof(image3,axiom,
! [F,A,B,Y] :
( member(Y,image3(F,A,B))
<=> ( member(Y,B)
& ? [X] :
( member(X,A)
& apply(F,X,Y) ) ) ) ).
fof(inverse_image2,axiom,
! [F,B,X] :
( member(X,inverse_image2(F,B))
<=> ? [Y] :
( member(Y,B)
& apply(F,X,Y) ) ) ).
fof(inverse_image3,axiom,
! [F,B,A,X] :
( member(X,inverse_image3(F,B,A))
<=> ( member(X,A)
& ? [Y] :
( member(Y,B)
& apply(F,X,Y) ) ) ) ).
fof(increasing_function,axiom,
! [F,A,R,B,S] :
( increasing(F,A,R,B,S)
<=> ! [X1,Y1,X2,Y2] :
( ( member(X1,A)
& member(Y1,B)
& member(X2,A)
& member(Y2,B)
& apply(R,X1,X2)
& apply(F,X1,Y1)
& apply(F,X2,Y2) )
=> apply(S,Y1,Y2) ) ) ).
fof(decreasing_function,axiom,
! [F,A,R,B,S] :
( decreasing(F,A,R,B,S)
<=> ! [X1,Y1,X2,Y2] :
( ( member(X1,A)
& member(Y1,B)
& member(X2,A)
& member(Y2,B)
& apply(R,X1,X2)
& apply(F,X1,Y1)
& apply(F,X2,Y2) )
=> apply(S,Y2,Y1) ) ) ).
fof(isomorphism,axiom,
! [F,A,R,B,S] :
( isomorphism(F,A,R,B,S)
<=> ( maps(F,A,B)
& one_to_one(F,A,B)
& ! [X1,Y1,X2,Y2] :
( ( member(X1,A)
& member(Y1,B)
& member(X2,A)
& member(Y2,B)
& apply(F,X1,Y1)
& apply(F,X2,Y2) )
=> ( apply(R,X1,X2)
<=> apply(S,Y1,Y2) ) ) ) ) ).
%------------------------------------------------------------------------------
./SET006+2.ax
%--------------------------------------------------------------------------
% File : SET006+2 : TPTP v8.2.0. Released v2.2.0.
% Domain : Set Theory
% Axioms : Equivalence relation axioms for the SET006+0 set theory axioms
% Version : [Pas99] axioms.
% English :
% Refs : [Pas99] Pastre (1999), Email to G. Sutcliffe
% Source : [Pas99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 0 unt; 0 def)
% Number of atoms : 39 ( 1 equ)
% Maximal formula atoms : 13 ( 7 avg)
% Number of connectives : 35 ( 1 ~; 0 |; 17 &)
% ( 5 <=>; 12 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 10 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 2-3 aty)
% Number of functors : 1 ( 1 usr; 0 con; 3-3 aty)
% Number of variables : 29 ( 26 !; 3 ?)
% SPC :
% Comments : Requires SET006+0.ax
%--------------------------------------------------------------------------
%----Equivalence relations
fof(disjoint,axiom,
! [A,B] :
( disjoint(A,B)
<=> ~ ? [X] :
( member(X,A)
& member(X,B) ) ) ).
fof(partition,axiom,
! [A,E] :
( partition(A,E)
<=> ( ! [X] :
( member(X,A)
=> subset(X,E) )
& ! [X] :
( member(X,E)
=> ? [Y] :
( member(Y,A)
& member(X,Y) ) )
& ! [X,Y] :
( ( member(X,A)
& member(Y,A) )
=> ( ? [Z] :
( member(Z,X)
& member(Z,Y) )
=> X = Y ) ) ) ) ).
fof(equivalence,axiom,
! [A,R] :
( equivalence(R,A)
<=> ( ! [X] :
( member(X,A)
=> apply(R,X,X) )
& ! [X,Y] :
( ( member(X,A)
& member(Y,A) )
=> ( apply(R,X,Y)
=> apply(R,Y,X) ) )
& ! [X,Y,Z] :
( ( member(X,A)
& member(Y,A)
& member(Z,A) )
=> ( ( apply(R,X,Y)
& apply(R,Y,Z) )
=> apply(R,X,Z) ) ) ) ) ).
fof(equivalence_class,axiom,
! [R,E,A,X] :
( member(X,equivalence_class(A,E,R))
<=> ( member(X,E)
& apply(R,A,X) ) ) ).
fof(pre_order,axiom,
! [R,E] :
( pre_order(R,E)
<=> ( ! [X] :
( member(X,E)
=> apply(R,X,X) )
& ! [X,Y,Z] :
( ( member(X,E)
& member(Y,E)
& member(Z,E) )
=> ( ( apply(R,X,Y)
& apply(R,Y,Z) )
=> apply(R,X,Z) ) ) ) ) ).
%--------------------------------------------------------------------------
./SET006+3.ax
%------------------------------------------------------------------------------
% File : SET006+3 : TPTP v8.2.0. Released v3.2.0.
% Domain : Set Theory
% Axioms : Order relation (Naive set theory)
% Version : [Pas05] axioms.
% English :
% Refs : [Pas05] Pastre (2005), Email to G. Sutcliffe
% Source : [Pas05]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 10 ( 0 unt; 0 def)
% Number of atoms : 56 ( 3 equ)
% Maximal formula atoms : 14 ( 5 avg)
% Number of connectives : 46 ( 0 ~; 1 |; 21 &)
% ( 10 <=>; 14 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 9 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 13 ( 12 usr; 0 prp; 2-4 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 46 ( 46 !; 0 ?)
% SPC :
% Comments : Requires SET006+0.ax
%------------------------------------------------------------------------------
%----Order relations
fof(order,axiom,
! [R,E] :
( order(R,E)
<=> ( ! [X] :
( member(X,E)
=> apply(R,X,X) )
& ! [X,Y] :
( ( member(X,E)
& member(Y,E) )
=> ( ( apply(R,X,Y)
& apply(R,Y,X) )
=> X = Y ) )
& ! [X,Y,Z] :
( ( member(X,E)
& member(Y,E)
& member(Z,E) )
=> ( ( apply(R,X,Y)
& apply(R,Y,Z) )
=> apply(R,X,Z) ) ) ) ) ).
fof(total_order,axiom,
! [R,E] :
( total_order(R,E)
<=> ( order(R,E)
& ! [X,Y] :
( ( member(X,E)
& member(Y,E) )
=> ( apply(R,X,Y)
| apply(R,Y,X) ) ) ) ) ).
fof(upper_bound,axiom,
! [R,E,M] :
( upper_bound(M,R,E)
<=> ! [X] :
( member(X,E)
=> apply(R,X,M) ) ) ).
fof(lower_bound,axiom,
! [R,E,M] :
( lower_bound(M,R,E)
<=> ! [X] :
( member(X,E)
=> apply(R,M,X) ) ) ).
fof(greatest,axiom,
! [R,E,M] :
( greatest(M,R,E)
<=> ( member(M,E)
& ! [X] :
( member(X,E)
=> apply(R,X,M) ) ) ) ).
fof(least,axiom,
! [R,E,M] :
( least(M,R,E)
<=> ( member(M,E)
& ! [X] :
( member(X,E)
=> apply(R,M,X) ) ) ) ).
fof(max,axiom,
! [R,E,M] :
( max(M,R,E)
<=> ( member(M,E)
& ! [X] :
( ( member(X,E)
& apply(R,M,X) )
=> M = X ) ) ) ).
fof(min,axiom,
! [R,E,M] :
( min(M,R,E)
<=> ( member(M,E)
& ! [X] :
( ( member(X,E)
& apply(R,X,M) )
=> M = X ) ) ) ).
fof(least_upper_bound,axiom,
! [A,X,R,E] :
( least_upper_bound(A,X,R,E)
<=> ( member(A,X)
& upper_bound(A,R,X)
& ! [M] :
( ( member(M,E)
& upper_bound(M,R,X) )
=> apply(R,A,M) ) ) ) ).
fof(greatest_lower_bound,axiom,
! [A,X,R,E] :
( greatest_lower_bound(A,X,R,E)
<=> ( member(A,X)
& lower_bound(A,R,X)
& ! [M] :
( ( member(M,E)
& lower_bound(M,R,X) )
=> apply(R,M,A) ) ) ) ).
%------------------------------------------------------------------------------
./SET006+4.ax
%------------------------------------------------------------------------------
% File : SET006+4 : TPTP v8.2.0. Released v3.2.0.
% Domain : Set Theory
% Axioms : Ordinal numbers for the SET006+0 set theory axioms
% Version : [Pas05] axioms.
% English :
% Refs : [Pas05] Pastre (2005), Email to G. Sutcliffe
% Source : [Pas05]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 8 ( 0 unt; 0 def)
% Number of atoms : 36 ( 1 equ)
% Maximal formula atoms : 11 ( 4 avg)
% Number of connectives : 29 ( 1 ~; 1 |; 12 &)
% ( 7 <=>; 8 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 7 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 8 ( 7 usr; 0 prp; 1-3 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-3 aty)
% Number of variables : 28 ( 26 !; 2 ?)
% SPC :
% Comments : Requires SET006+0.ax
%------------------------------------------------------------------------------
%---- Ordinal numbers and strict order relations
fof(ordinal_number,axiom,
! [A] :
( member(A,on)
<=> ( set(A)
& strict_well_order(member_predicate,A)
& ! [X] :
( member(X,A)
=> subset(X,A) ) ) ) ).
fof(strict_well_order,axiom,
! [R,E] :
( strict_well_order(R,E)
<=> ( strict_order(R,E)
& ! [A] :
( ( subset(A,E)
& ? [X] : member(X,A) )
=> ? [Y] : least(Y,R,A) ) ) ) ).
fof(least,axiom,
! [R,E,M] :
( least(M,R,E)
<=> ( member(M,E)
& ! [X] :
( member(X,E)
=> ( M = X
| apply(R,M,X) ) ) ) ) ).
fof(rel_member,axiom,
! [X,Y] :
( apply(member_predicate,X,Y)
<=> member(X,Y) ) ).
fof(strict_order,axiom,
! [R,E] :
( strict_order(R,E)
<=> ( ! [X,Y] :
( ( member(X,E)
& member(Y,E) )
=> ~ ( apply(R,X,Y)
& apply(R,Y,X) ) )
& ! [X,Y,Z] :
( ( member(X,E)
& member(Y,E)
& member(Z,E) )
=> ( ( apply(R,X,Y)
& apply(R,Y,Z) )
=> apply(R,X,Z) ) ) ) ) ).
fof(set_member,axiom,
! [X] :
( set(X)
=> ! [Y] :
( member(Y,X)
=> set(Y) ) ) ).
fof(initial_segment,axiom,
! [X,R,A,Y] :
( member(Y,initial_segment(X,R,A))
<=> ( member(Y,A)
& apply(R,Y,X) ) ) ).
fof(successor,axiom,
! [A,X] :
( member(X,suc(A))
<=> member(X,union(A,singleton(A))) ) ).
%------------------------------------------------------------------------------
./SET008^0.ax
%------------------------------------------------------------------------------
% File : SET008^0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Set Theory
% Axioms : Basic set theory definitions
% Version : [Ben08] axioms.
% English :
% Refs : [BS+05] Benzmueller et al. (2005), Can a Higher-Order and a Fi
% : [BS+08] Benzmueller et al. (2007), Combined Reasoning by Autom
% : [Ben08] Benzmueller (2008), Email to Geoff Sutcliffe
% Source : [Ben08]
% Names : Typed_Set [Ben08]
% Status : Satisfiable
% Syntax : Number of formulae : 28 ( 14 unt; 14 typ; 14 def)
% Number of atoms : 35 ( 18 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 36 ( 5 ~; 3 |; 6 &; 21 @)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 21 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 70 ( 70 >; 0 *; 0 +; 0 <<)
% Number of symbols : 16 ( 14 usr; 1 con; 0-3 aty)
% Number of variables : 35 ( 32 ^ 1 !; 2 ?; 35 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
thf(in_decl,type,
in: $i > ( $i > $o ) > $o ).
thf(in,definition,
( in
= ( ^ [X: $i,M: $i > $o] : ( M @ X ) ) ) ).
thf(is_a_decl,type,
is_a: $i > ( $i > $o ) > $o ).
thf(is_a,definition,
( is_a
= ( ^ [X: $i,M: $i > $o] : ( M @ X ) ) ) ).
thf(emptyset_decl,type,
emptyset: $i > $o ).
thf(emptyset,definition,
( emptyset
= ( ^ [X: $i] : $false ) ) ).
thf(unord_pair_decl,type,
unord_pair: $i > $i > $i > $o ).
thf(unord_pair,definition,
( unord_pair
= ( ^ [X: $i,Y: $i,U: $i] :
( ( U = X )
| ( U = Y ) ) ) ) ).
thf(singleton_decl,type,
singleton: $i > $i > $o ).
thf(singleton,definition,
( singleton
= ( ^ [X: $i,U: $i] : ( U = X ) ) ) ).
thf(union_decl,type,
union: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(union,definition,
( union
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
| ( Y @ U ) ) ) ) ).
thf(excl_union_decl,type,
excl_union: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(excl_union,definition,
( excl_union
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( ( X @ U )
& ~ ( Y @ U ) )
| ( ~ ( X @ U )
& ( Y @ U ) ) ) ) ) ).
thf(intersection_decl,type,
intersection: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(intersection,definition,
( intersection
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
thf(setminus_decl,type,
setminus: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(setminus,definition,
( setminus
= ( ^ [X: $i > $o,Y: $i > $o,U: $i] :
( ( X @ U )
& ~ ( Y @ U ) ) ) ) ).
thf(complement_decl,type,
complement: ( $i > $o ) > $i > $o ).
thf(complement,definition,
( complement
= ( ^ [X: $i > $o,U: $i] :
~ ( X @ U ) ) ) ).
thf(disjoint_decl,type,
disjoint: ( $i > $o ) > ( $i > $o ) > $o ).
thf(disjoint,definition,
( disjoint
= ( ^ [X: $i > $o,Y: $i > $o] :
( ( intersection @ X @ Y )
= emptyset ) ) ) ).
thf(subset_decl,type,
subset: ( $i > $o ) > ( $i > $o ) > $o ).
thf(subset,definition,
( subset
= ( ^ [X: $i > $o,Y: $i > $o] :
! [U: $i] :
( ( X @ U )
=> ( Y @ U ) ) ) ) ).
thf(meets_decl,type,
meets: ( $i > $o ) > ( $i > $o ) > $o ).
thf(meets,definition,
( meets
= ( ^ [X: $i > $o,Y: $i > $o] :
? [U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
thf(misses_decl,type,
misses: ( $i > $o ) > ( $i > $o ) > $o ).
thf(misses,definition,
( misses
= ( ^ [X: $i > $o,Y: $i > $o] :
~ ? [U: $i] :
( ( X @ U )
& ( Y @ U ) ) ) ) ).
%------------------------------------------------------------------------------
./SET008^1.ax
%------------------------------------------------------------------------------
% File : SET008^1 : TPTP v8.2.0. Released v3.6.0.
% Domain : Set Theory
% Axioms : Definitions for functions
% Version : [Ben08] axioms.
% English :
% Refs : [BS+05] Benzmueller et al. (2005), Can a Higher-Order and a Fi
% : [BS+08] Benzmueller et al. (2007), Combined Reasoning by Autom
% : [Ben08] Benzmueller (2008), Email to Geoff Sutcliffe
% Source : [Ben08]
% Names : Typed_Function [Ben08]
% Status : Satisfiable
% Syntax : Number of formulae : 16 ( 8 unt; 8 typ; 8 def)
% Number of atoms : 22 ( 13 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 29 ( 0 ~; 0 |; 3 &; 23 @)
% ( 0 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 23 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 46 ( 46 >; 0 *; 0 +; 0 <<)
% Number of symbols : 9 ( 8 usr; 0 con; 1-3 aty)
% Number of variables : 26 ( 16 ^ 7 !; 3 ?; 26 :)
% SPC :
% Comments : Requires SET008^0.
%------------------------------------------------------------------------------
thf(fun_image_decl,type,
fun_image: ( $i > $i ) > ( $i > $o ) > $i > $o ).
thf(fun_image,definition,
( fun_image
= ( ^ [F: $i > $i,A: $i > $o,Y: $i] :
? [X: $i] :
( ( A @ X )
& ( Y
= ( F @ X ) ) ) ) ) ).
thf(fun_composition_decl,type,
fun_composition: ( $i > $i ) > ( $i > $i ) > $i > $i ).
thf(fun_composition,definition,
( fun_composition
= ( ^ [F: $i > $i,G: $i > $i,X: $i] : ( G @ ( F @ X ) ) ) ) ).
thf(fun_inv_image_decl,type,
fun_inv_image: ( $i > $i ) > ( $i > $o ) > $i > $o ).
thf(fun_inv_image,definition,
( fun_inv_image
= ( ^ [F: $i > $i,B: $i > $o,X: $i] :
? [Y: $i] :
( ( B @ Y )
& ( Y
= ( F @ X ) ) ) ) ) ).
thf(fun_injective_decl,type,
fun_injective: ( $i > $i ) > $o ).
thf(fun_injective,definition,
( fun_injective
= ( ^ [F: $i > $i] :
! [X: $i,Y: $i] :
( ( ( F @ X )
= ( F @ Y ) )
=> ( X = Y ) ) ) ) ).
thf(fun_surjective_decl,type,
fun_surjective: ( $i > $i ) > $o ).
thf(fun_surjective,definition,
( fun_surjective
= ( ^ [F: $i > $i] :
! [Y: $i] :
? [X: $i] :
( Y
= ( F @ X ) ) ) ) ).
thf(fun_bijective_decl,type,
fun_bijective: ( $i > $i ) > $o ).
thf(fun_bijective,definition,
( fun_bijective
= ( ^ [F: $i > $i] :
( ( fun_injective @ F )
& ( fun_surjective @ F ) ) ) ) ).
thf(fun_decreasing_decl,type,
fun_decreasing: ( $i > $i ) > ( $i > $i > $o ) > $o ).
thf(fun_decreasing,definition,
( fun_decreasing
= ( ^ [F: $i > $i,SMALLER: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( SMALLER @ X @ Y )
=> ( SMALLER @ ( F @ Y ) @ ( F @ X ) ) ) ) ) ).
thf(fun_increasing_decl,type,
fun_increasing: ( $i > $i ) > ( $i > $i > $o ) > $o ).
thf(fun_increasing,definition,
( fun_increasing
= ( ^ [F: $i > $i,SMALLER: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( SMALLER @ X @ Y )
=> ( SMALLER @ ( F @ X ) @ ( F @ Y ) ) ) ) ) ).
%------------------------------------------------------------------------------
./SET008^2.ax
%------------------------------------------------------------------------------
% File : SET008^2 : TPTP v8.2.0. Released v3.6.0.
% Domain : Set Theory
% Axioms : Definitions for relations
% Version : [Ben08] axioms.
% English :
% Refs : [BS+05] Benzmueller et al. (2005), Can a Higher-Order and a Fi
% : [BS+08] Benzmueller et al. (2007), Combined Reasoning by Autom
% : [Ben08] Benzmueller (2008), Email to Geoff Sutcliffe
% Source : [Ben08]
% Names : Typed_Relation [Ben08]
% Status : Satisfiable
% Syntax : Number of formulae : 42 ( 21 unt; 21 typ; 21 def)
% Number of atoms : 51 ( 25 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 88 ( 3 ~; 2 |; 12 &; 62 @)
% ( 1 <=>; 8 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 62 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 142 ( 142 >; 0 *; 0 +; 0 <<)
% Number of symbols : 22 ( 21 usr; 0 con; 1-4 aty)
% Number of variables : 72 ( 48 ^ 18 !; 6 ?; 72 :)
% SPC :
% Comments : Requires SET008^0.
%------------------------------------------------------------------------------
thf(cartesian_product_decl,type,
cartesian_product: ( $i > $o ) > ( $i > $o ) > $i > $i > $o ).
thf(cartesian_product,definition,
( cartesian_product
= ( ^ [X: $i > $o,Y: $i > $o,U: $i,V: $i] :
( ( X @ U )
& ( Y @ V ) ) ) ) ).
thf(pair_rel_decl,type,
pair_rel: $i > $i > $i > $i > $o ).
thf(pair_rel,definition,
( pair_rel
= ( ^ [X: $i,Y: $i,U: $i,V: $i] :
( ( U = X )
| ( V = Y ) ) ) ) ).
thf(id_rel_decl,type,
id_rel: ( $i > $o ) > $i > $i > $o ).
thf(id_rel,definition,
( id_rel
= ( ^ [S: $i > $o,X: $i,Y: $i] :
( ( S @ X )
& ( X = Y ) ) ) ) ).
thf(sub_rel_decl,type,
sub_rel: ( $i > $i > $o ) > ( $i > $i > $o ) > $o ).
thf(sub_rel,definition,
( sub_rel
= ( ^ [R1: $i > $i > $o,R2: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( R1 @ X @ Y )
=> ( R2 @ X @ Y ) ) ) ) ).
thf(is_rel_on_decl,type,
is_rel_on: ( $i > $i > $o ) > ( $i > $o ) > ( $i > $o ) > $o ).
thf(is_rel_on,definition,
( is_rel_on
= ( ^ [R: $i > $i > $o,A: $i > $o,B: $i > $o] :
! [X: $i,Y: $i] :
( ( R @ X @ Y )
=> ( ( A @ X )
& ( B @ Y ) ) ) ) ) ).
thf(restrict_rel_domain_decl,type,
restrict_rel_domain: ( $i > $i > $o ) > ( $i > $o ) > $i > $i > $o ).
thf(restrict_rel_domain,definition,
( restrict_rel_domain
= ( ^ [R: $i > $i > $o,S: $i > $o,X: $i,Y: $i] :
( ( S @ X )
& ( R @ X @ Y ) ) ) ) ).
thf(rel_diagonal_decl,type,
rel_diagonal: $i > $i > $o ).
thf(rel_diagonal,definition,
( rel_diagonal
= ( ^ [X: $i,Y: $i] : ( X = Y ) ) ) ).
thf(rel_composition_decl,type,
rel_composition: ( $i > $i > $o ) > ( $i > $i > $o ) > $i > $i > $o ).
thf(rel_composition,definition,
( rel_composition
= ( ^ [R1: $i > $i > $o,R2: $i > $i > $o,X: $i,Z: $i] :
? [Y: $i] :
( ( R1 @ X @ Y )
& ( R2 @ Y @ Z ) ) ) ) ).
thf(reflexive_decl,type,
reflexive: ( $i > $i > $o ) > $o ).
thf(reflexive,definition,
( reflexive
= ( ^ [R: $i > $i > $o] :
! [X: $i] : ( R @ X @ X ) ) ) ).
thf(irreflexive_decl,type,
irreflexive: ( $i > $i > $o ) > $o ).
thf(irreflexive,definition,
( irreflexive
= ( ^ [R: $i > $i > $o] :
! [X: $i] :
~ ( R @ X @ X ) ) ) ).
thf(symmetric_decl,type,
symmetric: ( $i > $i > $o ) > $o ).
thf(symmetric,definition,
( symmetric
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( R @ X @ Y )
=> ( R @ Y @ X ) ) ) ) ).
thf(transitive_decl,type,
transitive: ( $i > $i > $o ) > $o ).
thf(transitive,definition,
( transitive
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i,Z: $i] :
( ( ( R @ X @ Y )
& ( R @ Y @ Z ) )
=> ( R @ X @ Z ) ) ) ) ).
thf(equiv_rel__decl,type,
equiv_rel: ( $i > $i > $o ) > $o ).
thf(equiv_rel,definition,
( equiv_rel
= ( ^ [R: $i > $i > $o] :
( ( reflexive @ R )
& ( symmetric @ R )
& ( transitive @ R ) ) ) ) ).
thf(rel_codomain_decl,type,
rel_codomain: ( $i > $i > $o ) > $i > $o ).
thf(rel_codomain,definition,
( rel_codomain
= ( ^ [R: $i > $i > $o,Y: $i] :
? [X: $i] : ( R @ X @ Y ) ) ) ).
thf(rel_domain_decl,type,
rel_domain: ( $i > $i > $o ) > $i > $o ).
thf(rel_domain,definition,
( rel_domain
= ( ^ [R: $i > $i > $o,X: $i] :
? [Y: $i] : ( R @ X @ Y ) ) ) ).
thf(rel_inverse_decl,type,
rel_inverse: ( $i > $i > $o ) > $i > $i > $o ).
thf(rel_inverse,definition,
( rel_inverse
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] : ( R @ Y @ X ) ) ) ).
thf(equiv_classes_decl,type,
equiv_classes: ( $i > $i > $o ) > ( $i > $o ) > $o ).
thf(equiv_classes,definition,
( equiv_classes
= ( ^ [R: $i > $i > $o,S1: $i > $o] :
? [X: $i] :
( ( S1 @ X )
& ! [Y: $i] :
( ( S1 @ Y )
<=> ( R @ X @ Y ) ) ) ) ) ).
thf(restrict_rel_codomain_decl,type,
restrict_rel_codomain: ( $i > $i > $o ) > ( $i > $o ) > $i > $i > $o ).
thf(restrict_rel_codomain,definition,
( restrict_rel_codomain
= ( ^ [R: $i > $i > $o,S: $i > $o,X: $i,Y: $i] :
( ( S @ Y )
& ( R @ X @ Y ) ) ) ) ).
thf(rel_field_decl,type,
rel_field: ( $i > $i > $o ) > $i > $o ).
thf(rel_field,definition,
( rel_field
= ( ^ [R: $i > $i > $o,X: $i] :
( ( rel_domain @ R @ X )
| ( rel_codomain @ R @ X ) ) ) ) ).
thf(well_founded_decl,type,
well_founded: ( $i > $i > $o ) > $o ).
thf(well_founded,definition,
( well_founded
= ( ^ [R: $i > $i > $o] :
! [X: $i > $o,Z: $i] :
( ( X @ Z )
=> ? [Y: $i] :
( ( X @ Y )
& ! [W: $i] :
( ( R @ Y @ W )
=> ~ ( X @ W ) ) ) ) ) ) ).
thf(upwards_well_founded_decl,type,
upwards_well_founded: ( $i > $i > $o ) > $o ).
thf(upwards_well_founded,definition,
( upwards_well_founded
= ( ^ [R: $i > $i > $o] :
! [X: $i > $o,Z: $i] :
( ( X @ Z )
=> ? [Y: $i] :
( ( X @ Y )
& ! [W: $i] :
( ( R @ Y @ Y )
=> ~ ( X @ W ) ) ) ) ) ) ).
%------------------------------------------------------------------------------
./SET009^0.ax
%------------------------------------------------------------------------------
% File : SET009^0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Set Theory
% Axioms : Binary relations
% Version : [Nei08] axioms.
% English : Lots of stuff about binary relations. A binary relation is just
% anything of type $i > $i > $o. Many properties and some proofs
% can be found in chapter 2 of [BN99].
% Refs : [BN99] Baader & Nipkow (1999), Term Rewriting and All That
% : [Nei08] Neis (2008), Email to Geoff Sutcliffe
% Source : [Nei08]
% Names : rel.ax [Nei08]
% Status : Satisfiable
% Syntax : Number of formulae : 58 ( 29 unt; 29 typ; 29 def)
% Number of atoms : 91 ( 33 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 158 ( 4 ~; 4 |; 12 &; 122 @)
% ( 0 <=>; 16 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 122 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 197 ( 197 >; 0 *; 0 +; 0 <<)
% Number of symbols : 30 ( 29 usr; 0 con; 1-3 aty)
% Number of variables : 86 ( 43 ^ 38 !; 5 ?; 86 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----BASICS
%----Subrelation
thf(subrel_type,type,
subrel: ( $i > $i > $o ) > ( $i > $i > $o ) > $o ).
thf(subrel,definition,
( subrel
= ( ^ [R: $i > $i > $o,S: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( R @ X @ Y )
=> ( S @ X @ Y ) ) ) ) ).
%----Inverse
thf(inv_type,type,
inv: ( $i > $i > $o ) > $i > $i > $o ).
thf(inverse,definition,
( inv
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] : ( R @ Y @ X ) ) ) ).
%----IDEMPOTENCY, INFLATION, MONOTONICITY
%----Idempotency
thf(idem_type,type,
idem: ( ( $i > $i > $o ) > $i > $i > $o ) > $o ).
thf(idempotent,definition,
( idem
= ( ^ [F: ( $i > $i > $o ) > $i > $i > $o] :
! [R: $i > $i > $o] :
( ( F @ ( F @ R ) )
= ( F @ R ) ) ) ) ).
%----Being inflationary
thf(infl_type,type,
infl: ( ( $i > $i > $o ) > $i > $i > $o ) > $o ).
thf(inflationary,definition,
( infl
= ( ^ [F: ( $i > $i > $o ) > $i > $i > $o] :
! [R: $i > $i > $o] : ( subrel @ R @ ( F @ R ) ) ) ) ).
%----Monotonicity
thf(mono_type,type,
mono: ( ( $i > $i > $o ) > $i > $i > $o ) > $o ).
thf(monotonic,definition,
( mono
= ( ^ [F: ( $i > $i > $o ) > $i > $i > $o] :
! [R: $i > $i > $o,S: $i > $i > $o] :
( ( subrel @ R @ S )
=> ( subrel @ ( F @ R ) @ ( F @ S ) ) ) ) ) ).
%----REFLEXIVITY, IRREFLEXIVITY, AND REFLEXIVE CLOSURE
%----Reflexivity
thf(refl_type,type,
refl: ( $i > $i > $o ) > $o ).
thf(reflexive,definition,
( refl
= ( ^ [R: $i > $i > $o] :
! [X: $i] : ( R @ X @ X ) ) ) ).
%----Irreflexivity
thf(irrefl_type,type,
irrefl: ( $i > $i > $o ) > $o ).
thf(irreflexive,definition,
( irrefl
= ( ^ [R: $i > $i > $o] :
! [X: $i] :
~ ( R @ X @ X ) ) ) ).
%----Reflexive closure
thf(rc_type,type,
rc: ( $i > $i > $o ) > $i > $i > $o ).
thf(reflexive_closure,definition,
( rc
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] :
( ( X = Y )
| ( R @ X @ Y ) ) ) ) ).
%----SYMMETRY, ANTISYMMETRY, ASYMMETRY, AND SYMMETRIC CLOSURE
%----Symmetry
thf(symm_type,type,
symm: ( $i > $i > $o ) > $o ).
thf(symmetric,definition,
( symm
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( R @ X @ Y )
=> ( R @ Y @ X ) ) ) ) ).
%----Antisymmetry
thf(antisymm_type,type,
antisymm: ( $i > $i > $o ) > $o ).
thf(antisymmetric,definition,
( antisymm
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( ( R @ X @ Y )
& ( R @ Y @ X ) )
=> ( X = Y ) ) ) ) ).
%----Asymmetry
thf(asymm_type,type,
asymm: ( $i > $i > $o ) > $o ).
thf(asymmetric,definition,
( asymm
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( R @ X @ Y )
=> ~ ( R @ Y @ X ) ) ) ) ).
%----Symmetric closure
thf(sc_type,type,
sc: ( $i > $i > $o ) > $i > $i > $o ).
thf(symmetric_closure,definition,
( sc
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] :
( ( R @ Y @ X )
| ( R @ X @ Y ) ) ) ) ).
%----TRANSITIVITY AND TRANSITIVE CLOSURE
%----Transitivity
thf(trans_type,type,
trans: ( $i > $i > $o ) > $o ).
thf(transitive,definition,
( trans
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i,Z: $i] :
( ( ( R @ X @ Y )
& ( R @ Y @ Z ) )
=> ( R @ X @ Z ) ) ) ) ).
%----Transitive closure
thf(tc_type,type,
tc: ( $i > $i > $o ) > $i > $i > $o ).
% the transitive closure of R is the smallest transitive
% relation containing R (thanks, Chad!)
thf(transitive_closure,definition,
( tc
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] :
! [S: $i > $i > $o] :
( ( ( trans @ S )
& ( subrel @ R @ S ) )
=> ( S @ X @ Y ) ) ) ) ).
%----TRANSITIVE REFLEXIVE CLOSURE AND TRANSITIVE REFLEXIVE SYMMETRIC CLOSURE
%----Transitive reflexive closure
thf(trc_type,type,
trc: ( $i > $i > $o ) > $i > $i > $o ).
thf(transitive_reflexive_closure,definition,
( trc
= ( ^ [R: $i > $i > $o] : ( rc @ ( tc @ R ) ) ) ) ).
%----Transitive reflexive symmetric closure
thf(trsc_type,type,
trsc: ( $i > $i > $o ) > $i > $i > $o ).
thf(transitive_reflexive_symmetric_closure,definition,
( trsc
= ( ^ [R: $i > $i > $o] : ( sc @ ( rc @ ( tc @ R ) ) ) ) ) ).
%----ORDERS
%----Being a partial order
thf(po_type,type,
po: ( $i > $i > $o ) > $o ).
thf(partial_order,definition,
( po
= ( ^ [R: $i > $i > $o] :
( ( refl @ R )
& ( antisymm @ R )
& ( trans @ R ) ) ) ) ).
%----Being a strict (partial) order
thf(so_type,type,
so: ( $i > $i > $o ) > $o ).
thf(strict_order,definition,
( so
= ( ^ [R: $i > $i > $o] :
( ( asymm @ R )
& ( trans @ R ) ) ) ) ).
%----Totality
thf(total_type,type,
total: ( $i > $i > $o ) > $o ).
thf(total,definition,
( total
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( X = Y )
| ( R @ X @ Y )
| ( R @ Y @ X ) ) ) ) ).
%----TERMINATION AND INDUCTION
%----Termination
thf(term_type,type,
term: ( $i > $i > $o ) > $o ).
% axiomatisation: any non-empty subset has an R-maximal element
thf(terminating,definition,
( term
= ( ^ [R: $i > $i > $o] :
! [A: $i > $o] :
( ? [X: $i] : ( A @ X )
=> ? [X: $i] :
( ( A @ X )
& ! [Y: $i] :
( ( A @ Y )
=> ~ ( R @ X @ Y ) ) ) ) ) ) ).
%----Satisfying the induction principle
thf(ind_type,type,
ind: ( $i > $i > $o ) > $o ).
thf(satisfying_the_induction_principle,definition,
( ind
= ( ^ [R: $i > $i > $o] :
! [P: $i > $o] :
( ! [X: $i] :
( ! [Y: $i] :
( ( tc @ R @ X @ Y )
=> ( P @ Y ) )
=> ( P @ X ) )
=> ! [X: $i] : ( P @ X ) ) ) ) ).
%----NORMALIZATION
%----In normal form
thf(innf_type,type,
innf: ( $i > $i > $o ) > $i > $o ).
thf(in_normal_form,definition,
( innf
= ( ^ [R: $i > $i > $o,X: $i] :
~ ? [Y: $i] : ( R @ X @ Y ) ) ) ).
%----Normal form of
thf(nfof_type,type,
nfof: ( $i > $i > $o ) > $i > $i > $o ).
thf(normal_form_of,definition,
( nfof
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] :
( ( trc @ R @ Y @ X )
& ( innf @ R @ X ) ) ) ) ).
%----Normalization
thf(norm_type,type,
norm: ( $i > $i > $o ) > $o ).
thf(normalizing,definition,
( norm
= ( ^ [R: $i > $i > $o] :
! [X: $i] :
? [Y: $i] : ( nfof @ R @ Y @ X ) ) ) ).
%----CONFLUENCE AND FRIENDS
%----Joinability
thf(join_type,type,
join: ( $i > $i > $o ) > $i > $i > $o ).
thf(joinable,definition,
( join
= ( ^ [R: $i > $i > $o,X: $i,Y: $i] :
? [Z: $i] :
( ( trc @ R @ X @ Z )
& ( trc @ R @ Y @ Z ) ) ) ) ).
%----Local confluence
thf(lconfl_type,type,
lconfl: ( $i > $i > $o ) > $o ).
thf(locally_confluent,definition,
( lconfl
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i,Z: $i] :
( ( ( R @ X @ Z )
& ( R @ X @ Y ) )
=> ( join @ R @ Z @ Y ) ) ) ) ).
%----Semi confluence
thf(sconfl_type,type,
sconfl: ( $i > $i > $o ) > $o ).
thf(semi_confluent,definition,
( sconfl
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i,Z: $i] :
( ( ( R @ X @ Z )
& ( trc @ R @ X @ Y ) )
=> ( join @ R @ Z @ Y ) ) ) ) ).
%----Confluence
thf(confl_type,type,
confl: ( $i > $i > $o ) > $o ).
thf(confluent,definition,
( confl
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i,Z: $i] :
( ( ( trc @ R @ X @ Z )
& ( trc @ R @ X @ Y ) )
=> ( join @ R @ Z @ Y ) ) ) ) ).
%----Church-Rosser property
thf(cr_type,type,
cr: ( $i > $i > $o ) > $o ).
thf(church_rosser,definition,
( cr
= ( ^ [R: $i > $i > $o] :
! [X: $i,Y: $i] :
( ( trsc @ R @ X @ Y )
=> ( join @ R @ X @ Y ) ) ) ) ).
%------------------------------------------------------------------------------
Semantic Web
./SWB001+0.ax
Very long 3690
./SWB002+0.ax
Very long 806
./SWB003+0.ax
%------------------------------------------------------------------------------
% File : SWB003+0 : TPTP v8.2.0. Released v5.2.0.
% Domain : Semantic Web
% Axioms : RDFS
% Version : [Sch03] axioms : Especial.
% English :
% Refs : [Sch03] Schneider, M. (2011), Email to G. Sutcliffe
% Source : [Sch03]
% Names : axioms-rdfs-standard [Sch03]
% Status : Satisfiable
% Syntax : Number of formulae : 80 ( 62 unt; 0 def)
% Number of atoms : 108 ( 0 equ)
% Maximal formula atoms : 5 ( 1 avg)
% Number of connectives : 28 ( 0 ~; 0 |; 8 &)
% ( 5 <=>; 15 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 2 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 6 ( 6 usr; 0 prp; 1-3 aty)
% Number of functors : 33 ( 33 usr; 33 con; 0-0 aty)
% Number of variables : 37 ( 37 !; 0 ?)
% SPC : FOF_SAT_EPR
% Comments :
%------------------------------------------------------------------------------
%----I(s p o) = true -> I(p) in IP
%----Note: the "iext" predicate seems to represent a true triple,
%----not quite the IEXT mapping [CHECK!]
fof(simple_iext_property,axiom,
! [S,P,O] :
( iext(P,S,O)
=> ip(P) ) ).
%----Set IR
%----The set IR is the set of all resources.
fof(simple_ir,axiom,
! [X] : ir(X) ).
%----Set LV
%----The set LV of all data values is a subset of IR.
fof(simple_lv,axiom,
! [X] :
( lv(X)
=> ir(X) ) ).
%----Axiomatic Triples for the Collection Vocabulary (Lists): rdf:first
fof(rdf_collection_first_type,axiom,
iext(uri_rdf_type,uri_rdf_first,uri_rdf_Property) ).
%----Axiomatic Triples for the Collection Vocabulary (Lists): rdf:nil
fof(rdf_collection_nil_type,axiom,
iext(uri_rdf_type,uri_rdf_nil,uri_rdf_List) ).
%----Axiomatic Triples for the Collection Vocabulary (Lists): rdf:rest
fof(rdf_collection_rest_type,axiom,
iext(uri_rdf_type,uri_rdf_rest,uri_rdf_Property) ).
%----Axiomatic Triples for the Container Vocabulary: rdf:_n
fof(rdf_container_n_type_001,axiom,
iext(uri_rdf_type,uri_rdf__1,uri_rdf_Property) ).
%----Axiomatic Triples for the Container Vocabulary: rdf:_n
fof(rdf_container_n_type_002,axiom,
iext(uri_rdf_type,uri_rdf__2,uri_rdf_Property) ).
%----Axiomatic Triples for the Container Vocabulary: rdf:_n
fof(rdf_container_n_type_003,axiom,
iext(uri_rdf_type,uri_rdf__3,uri_rdf_Property) ).
%----Axiomatic Triples for the Reification Vocabulary: rdf:object
fof(rdf_reification_object_type,axiom,
iext(uri_rdf_type,uri_rdf_object,uri_rdf_Property) ).
%----Axiomatic Triples for rdf:value--
fof(rdf_reification_predicate_type,axiom,
iext(uri_rdf_type,uri_rdf_value,uri_rdf_Property) ).
%----Axiomatic Triples for the Reification Vocabulary: rdf:subject
fof(rdf_reification_subject_type,axiom,
iext(uri_rdf_type,uri_rdf_subject,uri_rdf_Property) ).
%----IP and rdf:Property
fof(rdf_type_ip,axiom,
! [P] :
( iext(uri_rdf_type,P,uri_rdf_Property)
<=> ip(P) ) ).
%----Axiomatic Triple for rdf:type
fof(rdf_type_type,axiom,
iext(uri_rdf_type,uri_rdf_type,uri_rdf_Property) ).
%----Axiomatic Triple for rdf:type
fof(rdf_value_type,axiom,
iext(uri_rdf_type,uri_rdf_type,uri_rdf_Property) ).
fof(rdfs_annotation_comment_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_comment,uri_rdfs_Resource) ).
fof(rdfs_annotation_comment_range,axiom,
iext(uri_rdfs_range,uri_rdfs_comment,uri_rdfs_Literal) ).
fof(rdfs_annotation_isdefinedby_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_isDefinedBy,uri_rdfs_Resource) ).
fof(rdfs_annotation_isdefinedby_range,axiom,
iext(uri_rdfs_range,uri_rdfs_isDefinedBy,uri_rdfs_Resource) ).
fof(rdfs_annotation_isdefinedby_sub,axiom,
iext(uri_rdfs_subPropertyOf,uri_rdfs_isDefinedBy,uri_rdfs_seeAlso) ).
fof(rdfs_annotation_label_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_label,uri_rdfs_Resource) ).
fof(rdfs_annotation_label_range,axiom,
iext(uri_rdfs_range,uri_rdfs_label,uri_rdfs_Literal) ).
fof(rdfs_annotation_seealso_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_seeAlso,uri_rdfs_Resource) ).
fof(rdfs_annotation_seealso_range,axiom,
iext(uri_rdfs_range,uri_rdfs_seeAlso,uri_rdfs_Resource) ).
%----Definition of ICEXT
fof(rdfs_cext_def,axiom,
! [X,C] :
( iext(uri_rdf_type,X,C)
<=> icext(C,X) ) ).
%----IC and rdfs:Resource
fof(rdfs_class_instsub_resource,axiom,
! [C] :
( ic(C)
=> iext(uri_rdfs_subClassOf,C,uri_rdfs_Resource) ) ).
%----IC and rdfs:Resource
fof(rdfs_collection_first_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_first,uri_rdf_List) ).
%----IC and rdfs:Resource
fof(rdfs_collection_first_range,axiom,
iext(uri_rdfs_range,uri_rdf_first,uri_rdfs_Resource) ).
fof(rdfs_collection_rest_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_rest,uri_rdf_List) ).
fof(rdfs_collection_rest_range,axiom,
iext(uri_rdfs_range,uri_rdf_rest,uri_rdf_List) ).
fof(rdfs_container_alt_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdf_Alt,uri_rdfs_Container) ).
fof(rdfs_container_bag_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdf_Bag,uri_rdfs_Container) ).
%----rdfs:ContainerMembershipProperty
fof(rdfs_container_containermembershipproperty_instsub_member,axiom,
! [P] :
( icext(uri_rdfs_ContainerMembershipProperty,P)
=> iext(uri_rdfs_subPropertyOf,P,uri_rdfs_member) ) ).
fof(rdfs_container_containermembershipproperty_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdfs_ContainerMembershipProperty,uri_rdf_Property) ).
fof(rdfs_container_member_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_member,uri_rdfs_Resource) ).
fof(rdfs_container_member_range,axiom,
iext(uri_rdfs_range,uri_rdfs_member,uri_rdfs_Resource) ).
fof(rdfs_container_n_domain_001,axiom,
iext(uri_rdfs_domain,uri_rdf__1,uri_rdfs_Resource) ).
fof(rdfs_container_n_domain_002,axiom,
iext(uri_rdfs_domain,uri_rdf__2,uri_rdfs_Resource) ).
fof(rdfs_container_n_domain_003,axiom,
iext(uri_rdfs_domain,uri_rdf__3,uri_rdfs_Resource) ).
fof(rdfs_container_n_range_001,axiom,
iext(uri_rdfs_range,uri_rdf__1,uri_rdfs_Resource) ).
fof(rdfs_container_n_range_002,axiom,
iext(uri_rdfs_range,uri_rdf__2,uri_rdfs_Resource) ).
fof(rdfs_container_n_range_003,axiom,
iext(uri_rdfs_range,uri_rdf__3,uri_rdfs_Resource) ).
fof(rdfs_container_n_type_001,axiom,
iext(uri_rdf_type,uri_rdf__1,uri_rdfs_ContainerMembershipProperty) ).
fof(rdfs_container_n_type_002,axiom,
iext(uri_rdf_type,uri_rdf__2,uri_rdfs_ContainerMembershipProperty) ).
fof(rdfs_container_n_type_003,axiom,
iext(uri_rdf_type,uri_rdf__3,uri_rdfs_ContainerMembershipProperty) ).
fof(rdfs_container_seq_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdfs_Seq,uri_rdfs_Container) ).
fof(rdfs_dat_xmlliteral_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdf_XMLLiteral,uri_rdfs_Literal) ).
%----type of rdf:XMLLiteral
fof(rdfs_dat_xmlliteral_type,axiom,
iext(uri_rdf_type,uri_rdf_XMLLiteral,uri_rdfs_Datatype) ).
%----rdfs:Datatype and rdfs:Literal
fof(rdfs_datatype_instsub_literal,axiom,
! [D] :
( icext(uri_rdfs_Datatype,D)
=> iext(uri_rdfs_subClassOf,D,uri_rdfs_Literal) ) ).
%----rdfs:Datatype is a sub class of rdfs:Class
fof(rdfs_datatype_sub,axiom,
iext(uri_rdfs_subClassOf,uri_rdfs_Datatype,uri_rdfs_Class) ).
%----domain of rdfs:domain
fof(rdfs_domain_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_domain,uri_rdf_Property) ).
%----Semantic Condition for rdfs:domain
fof(rdfs_domain_main,axiom,
! [P,C,X,Y] :
( ( iext(uri_rdfs_domain,P,C)
& iext(P,X,Y) )
=> icext(C,X) ) ).
%----range of rdfs:domain
fof(rdfs_domain_range,axiom,
iext(uri_rdfs_range,uri_rdfs_domain,uri_rdfs_Class) ).
%----Definition of set IC based on class extensions of rdfs:Class
fof(rdfs_ic_def,axiom,
! [X] :
( ic(X)
<=> icext(uri_rdfs_Class,X) ) ).
%----Definition of set IR based on class extensions of rdfs:Resource
fof(rdfs_ir_def,axiom,
! [X] :
( ir(X)
<=> icext(uri_rdfs_Resource,X) ) ).
%----Definition of set LV based on class extensions of rdfs:Literal
fof(rdfs_lv_def,axiom,
! [X] :
( lv(X)
<=> icext(uri_rdfs_Literal,X) ) ).
%----type of rdf:Property (derivable RDFS-valid triple)
fof(rdfs_property_type,axiom,
iext(uri_rdf_type,uri_rdf_Property,uri_rdfs_Class) ).
%----domain of rdfs:range
fof(rdfs_range_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_range,uri_rdf_Property) ).
%----Semantic Condition for rdfs:range
fof(rdfs_range_main,axiom,
! [P,C,X,Y] :
( ( iext(uri_rdfs_range,P,C)
& iext(P,X,Y) )
=> icext(C,Y) ) ).
%----range of rdfs:range
fof(rdfs_range_range,axiom,
iext(uri_rdfs_range,uri_rdfs_range,uri_rdfs_Class) ).
fof(rdfs_reification_object_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_object,uri_rdfs_Statement) ).
fof(rdfs_reification_object_range,axiom,
iext(uri_rdfs_range,uri_rdf_predicate,uri_rdfs_Resource) ).
fof(rdfs_reification_predicate_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_predicate,uri_rdfs_Statement) ).
fof(rdfs_reification_predicate_range,axiom,
iext(uri_rdfs_range,uri_rdf_predicate,uri_rdfs_Resource) ).
fof(rdfs_reification_subject_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_subject,uri_rdfs_Statement) ).
fof(rdfs_reification_subject_range,axiom,
iext(uri_rdfs_range,uri_rdf_subject,uri_rdfs_Resource) ).
%----domain of rdfs:subClassOf
fof(rdfs_subclassof_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_subClassOf,uri_rdfs_Class) ).
%----Main Semantic Conditions for rdfs:subClassOf
fof(rdfs_subclassof_main,axiom,
! [C,D] :
( iext(uri_rdfs_subClassOf,C,D)
=> ( ic(C)
& ic(D)
& ! [X] :
( icext(C,X)
=> icext(D,X) ) ) ) ).
%----range of rdfs:subClassOf
fof(rdfs_subclassof_range,axiom,
iext(uri_rdfs_range,uri_rdfs_subClassOf,uri_rdfs_Class) ).
%----Reflexivity of rdfs:subClassOf on IC
fof(rdfs_subclassof_reflex,axiom,
! [C] :
( ic(C)
=> iext(uri_rdfs_subClassOf,C,C) ) ).
%----Transitivity of rdfs:subClassOf on IC
fof(rdfs_subclassof_trans,axiom,
! [C,D,E] :
( ( iext(uri_rdfs_subClassOf,C,D)
& iext(uri_rdfs_subClassOf,D,E) )
=> iext(uri_rdfs_subClassOf,C,E) ) ).
%----domain of rdfs:subPropertyOf
fof(rdfs_subpropertyof_domain,axiom,
iext(uri_rdfs_domain,uri_rdfs_subPropertyOf,uri_rdf_Property) ).
%----Main Semantic Condition for rdfs:subPropertyOf
fof(rdfs_subpropertyof_main,axiom,
! [P,Q] :
( iext(uri_rdfs_subPropertyOf,P,Q)
=> ( ip(P)
& ip(Q)
& ! [X,Y] :
( iext(P,X,Y)
=> iext(Q,X,Y) ) ) ) ).
%----range of rdfs:subPropertyOf
fof(rdfs_subpropertyof_range,axiom,
iext(uri_rdfs_range,uri_rdfs_subPropertyOf,uri_rdf_Property) ).
%----Reflexivity of rdfs:subPropertyOf on IP
fof(rdfs_subpropertyof_reflex,axiom,
! [P] :
( ip(P)
=> iext(uri_rdfs_subPropertyOf,P,P) ) ).
%----Transitivity of rdfs:subPropertyOf on IP
fof(rdfs_subpropertyof_trans,axiom,
! [P,Q,R] :
( ( iext(uri_rdfs_subPropertyOf,P,Q)
& iext(uri_rdfs_subPropertyOf,Q,R) )
=> iext(uri_rdfs_subPropertyOf,P,R) ) ).
%----domain of rdf:type
fof(rdfs_type_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_type,uri_rdfs_Resource) ).
%----range of rdf:type
fof(rdfs_type_range,axiom,
iext(uri_rdfs_range,uri_rdf_type,uri_rdfs_Class) ).
fof(rdfs_value_domain,axiom,
iext(uri_rdfs_domain,uri_rdf_value,uri_rdfs_Resource) ).
fof(rdfs_value_range,axiom,
iext(uri_rdfs_range,uri_rdf_value,uri_rdfs_Resource) ).
%------------------------------------------------------------------------------
./SWB003+1.ax
%------------------------------------------------------------------------------
% File : SWB003+1 : TPTP v8.2.0. Released v5.2.0.
% Domain : Semantic Web
% Axioms : RDFS Extensional axioms
% Version : [Sch03] axioms : Especial.
% English :
% Refs : [Sch03] Schneider, M. (2011), Email to G. Sutcliffe
% Source : [Sch03]
% Names : axioms-rdfsext-standard [Sch03]
% Status : Satisfiable
% Syntax : Number of formulae : 4 ( 0 unt; 0 def)
% Number of atoms : 20 ( 0 equ)
% Maximal formula atoms : 5 ( 5 avg)
% Number of connectives : 16 ( 0 ~; 0 |; 8 &)
% ( 4 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 9 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 4 ( 4 usr; 0 prp; 1-3 aty)
% Number of functors : 4 ( 4 usr; 4 con; 0-0 aty)
% Number of variables : 15 ( 15 !; 0 ?)
% SPC : FOF_SAT_RFO_NEQ
% Comments : Requires SWB003+0.ax
%------------------------------------------------------------------------------
%----rdfs:domain
fof(owl_rdfsext_domain,axiom,
! [P,C] :
( iext(uri_rdfs_domain,P,C)
<=> ( ip(P)
& ic(C)
& ! [X,Y] :
( iext(P,X,Y)
=> icext(C,X) ) ) ) ).
%----rdfs:range
fof(owl_rdfsext_range,axiom,
! [P,C] :
( iext(uri_rdfs_range,P,C)
<=> ( ip(P)
& ip(C)
& ! [X,Y] :
( iext(P,X,Y)
=> icext(C,Y) ) ) ) ).
%----rdfs:subClassOf
fof(owl_rdfsext_subclassof,axiom,
! [C1,C2] :
( iext(uri_rdfs_subClassOf,C1,C2)
<=> ( ic(C1)
& ic(C2)
& ! [X] :
( icext(C1,X)
=> icext(C2,X) ) ) ) ).
%----rdfs:subPropertyOf
fof(owl_rdfsext_subpropertyof,axiom,
! [P1,P2] :
( iext(uri_rdfs_subPropertyOf,P1,P2)
<=> ( ip(P1)
& ip(P2)
& ! [X,Y] :
( iext(P1,X,Y)
=> iext(P2,X,Y) ) ) ) ).
%------------------------------------------------------------------------------
./SWC001+0.ax
Very long 815
./SWC001-0.ax
Very long 999
./SWV001-0.ax
%--------------------------------------------------------------------------
% File : SWV001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Software Verification
% Axioms : Program verification axioms
% Version : [MOW76] axioms.
% English :
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 12 ( 5 unt; 1 nHn; 7 RR)
% Number of literals : 23 ( 9 equ; 11 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 2 ( 2 usr; 0 con; 1-1 aty)
% Number of variables : 22 ( 0 sgn)
% SPC :
% Comments : Only reflexivity is specified from equality, i.e. no symmetry
% or transitivity.
% : These axioms were contributed to [MOW76] in private
% correspondance from G. Ernst.
%--------------------------------------------------------------------------
cnf(predecessor_successor,axiom,
predecessor(successor(X)) = X ).
cnf(successor_predecessor,axiom,
successor(predecessor(X)) = X ).
cnf(well_defined_predecessor,axiom,
( X = Y
| predecessor(X) != predecessor(Y) ) ).
cnf(well_defined_successor,axiom,
( X = Y
| successor(X) != successor(Y) ) ).
cnf(predecessor_less_than,axiom,
less_than(predecessor(X),X) ).
cnf(less_than_successor,axiom,
less_than(X,successor(X)) ).
cnf(transitivity_of_less_than,axiom,
( less_than(X,Z)
| ~ less_than(X,Y)
| ~ less_than(Y,Z) ) ).
cnf(all_related,axiom,
( less_than(X,Y)
| less_than(Y,X)
| X = Y ) ).
cnf(x_not_less_than_x,axiom,
~ less_than(X,X) ).
cnf(anti_symmetry_of_less_than,axiom,
( ~ less_than(X,Y)
| ~ less_than(Y,X) ) ).
cnf(equal_and_less_than_transitivity1,axiom,
( less_than(Y,Z)
| X != Y
| ~ less_than(X,Z) ) ).
cnf(equal_and_less_than_transitivity2,axiom,
( less_than(Z,Y)
| X != Y
| ~ less_than(Z,X) ) ).
%--------------------------------------------------------------------------
./SWV002-0.ax
%--------------------------------------------------------------------------
% File : SWV002-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Software Verification
% Axioms : Program verification axioms
% Version : [MOW76] axioms.
% English : These "clauses arose in a natural manner from work done
% in program verification" [MOW76] p.779.
% Refs : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source : [MOW76]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 22 ( 6 unt; 2 nHn; 19 RR)
% Number of literals : 52 ( 3 equ; 30 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 11 ( 10 usr; 0 prp; 1-4 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 48 ( 5 sgn)
% SPC :
% Comments : These axioms were contributed to [MOW76] by E. McCharen. The
% axioms are incomplete.
% : Due to clause_2 being incomplete, no problems have been defined
% on these axioms.
%--------------------------------------------------------------------------
cnf(clause_1,axiom,
( ~ q1(Vj,Vt,Vx)
| q2(Vj,e(Vx,n1),Vx) ) ).
%----The second literal is not printed in [MOW76].
%----So this literal may be wrong
cnf(clause_2,axiom,
( ~ q2(Vj,Vt,Vx)
| q3(successor(n1),Vt,VWhat) ) ).
cnf(clause_3,axiom,
( ~ q3(Vj,Vt,Vx)
| ~ less_or_equal(Vj,n)
| q4(Vj,Vt,Vx) ) ).
cnf(clause_4,axiom,
( ~ q3(Vj,Vt,Vx)
| less_or_equal(Vj,n)
| q7(Vj,Vt,Vx) ) ).
cnf(clause_5,axiom,
( ~ q4(Vj,Vt,Vx)
| ~ d(Vj)
| ~ less_or_equal(e(Vx,Vj),Vt)
| q6(Vj,Vt,Vx) ) ).
cnf(clause_6,axiom,
( ~ q4(Vj,Vt,Vx)
| ~ d(Vj)
| less_or_equal(e(Vx,Vj),Vt)
| q5(Vj,Vt,Vx) ) ).
cnf(clause_7,axiom,
( ~ q5(Vj,Vt,Vx)
| ~ d(Vj)
| q6(Vj,e(Vx,Vj),Vx) ) ).
cnf(clause_8,axiom,
( ~ q6(Vj,Vt,Vx)
| q3(successor(Vj),Vt,Vx) ) ).
cnf(definition_of_d_1,axiom,
( ~ less_or_equal(n1,X)
| ~ less_or_equal(X,n)
| d(X) ) ).
cnf(definition_of_d_2,axiom,
( ~ d(X)
| ~ less_or_equal(n1,X) ) ).
cnf(definition_of_d_3,axiom,
( ~ d(X)
| less_or_equal(X,n) ) ).
cnf(one_is_d,axiom,
d(n1) ).
cnf(n_is_d,axiom,
d(n) ).
cnf(clause_9,axiom,
less_or_equal(n1,n) ).
cnf(clause_10,axiom,
( ~ ub(W1,X,Y,Z)
| ~ less_or_equal(W1,W2)
| ub(W2,X,Y,Z) ) ).
cnf(clause_11,axiom,
( ~ ub(W,X,Y,Z1)
| successor(Z1) != Z2
| ~ d(Z2)
| ~ less_or_equal(e(X,Z2),W)
| ub(W,X,Y,Z2) ) ).
cnf(successor_not_less_or_equal,axiom,
~ less_or_equal(successor(X),X) ).
cnf(less_or_equal_than_successor,axiom,
less_or_equal(X,successor(X)) ).
cnf(less_or_equal_reflexivity,axiom,
less_or_equal(X,X) ).
cnf(less_or_equal_implies_equal,axiom,
( ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,X)
| X = Y ) ).
cnf(transitivity_of_less_or_equal,axiom,
( ~ less_or_equal(X,Y)
| ~ less_or_equal(Y,Z)
| less_or_equal(X,Z) ) ).
cnf(equal_implies_less_or_equal,axiom,
( less_or_equal(X,Y)
| X != Y ) ).
%--------------------------------------------------------------------------
./SWV003+0.ax
%------------------------------------------------------------------------------
% File : SWV003+0 : TPTP v8.2.0. Bugfixed v3.3.0.
% Domain : Software Verification
% Axioms : NASA software certification axioms
% Version : [DFS04] axioms : Especial.
% English :
% Refs : [Fis04] Fischer (2004), Email to G. Sutcliffe
% : [DFS04] Denney et al. (2004), Using Automated Theorem Provers
% Source : [Fis04]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 52 ( 23 unt; 0 def)
% Number of atoms : 190 ( 54 equ)
% Maximal formula atoms : 20 ( 3 avg)
% Number of connectives : 143 ( 5 ~; 2 |; 86 &)
% ( 5 <=>; 45 =>; 0 <=; 0 <~>)
% Maximal formula depth : 18 ( 5 avg)
% Maximal term depth : 9 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 1 prp; 0-2 aty)
% Number of functors : 28 ( 28 usr; 10 con; 0-4 aty)
% Number of variables : 162 ( 162 !; 0 ?)
% SPC :
% Comments :
% Bugfixes : v3.3.0 - Fixed symmetry axioms
%------------------------------------------------------------------------------
%----Axioms for gt
fof(totality,axiom,
! [X,Y] :
( gt(X,Y)
| gt(Y,X)
| X = Y ) ).
fof(transitivity_gt,axiom,
! [X,Y,Z] :
( ( gt(X,Y)
& gt(Y,Z) )
=> gt(X,Z) ) ).
fof(irreflexivity_gt,axiom,
! [X] : ~ gt(X,X) ).
%----Axioms for leq
fof(reflexivity_leq,axiom,
! [X] : leq(X,X) ).
fof(transitivity_leq,axiom,
! [X,Y,Z] :
( ( leq(X,Y)
& leq(Y,Z) )
=> leq(X,Z) ) ).
%----Axioms for lt/geq
fof(lt_gt,axiom,
! [X,Y] :
( lt(X,Y)
<=> gt(Y,X) ) ).
fof(leq_geq,axiom,
! [X,Y] :
( geq(X,Y)
<=> leq(Y,X) ) ).
%----Axioms for combinations of gt and leq
fof(leq_gt1,axiom,
! [X,Y] :
( gt(Y,X)
=> leq(X,Y) ) ).
fof(leq_gt2,axiom,
! [X,Y] :
( ( leq(X,Y)
& X != Y )
=> gt(Y,X) ) ).
%----leq/gt and pred/succ
fof(leq_gt_pred,axiom,
! [X,Y] :
( leq(X,pred(Y))
<=> gt(Y,X) ) ).
fof(gt_succ,axiom,
! [X] : gt(succ(X),X) ).
fof(leq_succ,axiom,
! [X,Y] :
( leq(X,Y)
=> leq(X,succ(Y)) ) ).
fof(leq_succ_gt_equiv,axiom,
! [X,Y] :
( leq(X,Y)
<=> gt(succ(Y),X) ) ).
%----uniform_int_rand
%----Restriction: LB of uniform_int_rnd is 0
fof(uniform_int_rand_ranges_hi,axiom,
! [X,C] :
( leq(n0,X)
=> leq(uniform_int_rnd(C,X),X) ) ).
fof(uniform_int_rand_ranges_lo,axiom,
! [X,C] :
( leq(n0,X)
=> leq(n0,uniform_int_rnd(C,X)) ) ).
%----Axioms for constant arrays
fof(const_array1_select,axiom,
! [I,L,U,Val] :
( ( leq(L,I)
& leq(I,U) )
=> a_select2(tptp_const_array1(dim(L,U),Val),I) = Val ) ).
fof(const_array2_select,axiom,
! [I,L1,U1,J,L2,U2,Val] :
( ( leq(L1,I)
& leq(I,U1)
& leq(L2,J)
& leq(J,U2) )
=> a_select3(tptp_const_array2(dim(L1,U1),dim(L2,U2),Val),I,J) = Val ) ).
%----Symmetry axioms for matrix operations
fof(matrix_symm_trans,axiom,
! [A,N] :
( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(trans(A),I,J) = a_select3(trans(A),J,I) ) ) ).
fof(matrix_symm_inv,axiom,
! [A,N] :
( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(inv(A),I,J) = a_select3(inv(A),J,I) ) ) ).
fof(matrix_symm_update_diagonal,axiom,
! [A,N] :
( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
=> ! [I,J,K,VAL] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N)
& leq(n0,K)
& leq(K,N) )
=> a_select3(tptp_update3(A,K,K,VAL),I,J) = a_select3(tptp_update3(A,K,K,VAL),J,I) ) ) ).
fof(matrix_symm_add,axiom,
! [A,B,N] :
( ( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
& ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(B,I,J) = a_select3(B,J,I) ) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(tptp_madd(A,B),I,J) = a_select3(tptp_madd(A,B),J,I) ) ) ).
fof(matrix_symm_sub,axiom,
! [A,B,N] :
( ( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
& ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(B,I,J) = a_select3(B,J,I) ) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(tptp_msub(A,B),I,J) = a_select3(tptp_msub(A,B),J,I) ) ) ).
fof(matrix_symm_aba1,axiom,
! [A,B,N] :
( ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(B,I,J) = a_select3(B,J,I) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(tptp_mmul(A,tptp_mmul(B,trans(A))),I,J) = a_select3(tptp_mmul(A,tptp_mmul(B,trans(A))),J,I) ) ) ).
%----This is the generalized version where the matrix dimensions
%----can be different for B and the ABA'
fof(matrix_symm_aba2,axiom,
! [A,B,N,M] :
( ! [I,J] :
( ( leq(n0,I)
& leq(I,M)
& leq(n0,J)
& leq(J,M) )
=> a_select3(B,I,J) = a_select3(B,J,I) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(tptp_mmul(A,tptp_mmul(B,trans(A))),I,J) = a_select3(tptp_mmul(A,tptp_mmul(B,trans(A))),J,I) ) ) ).
fof(matrix_symm_joseph_update,axiom,
! [A,B,C,D,E,F,N,M] :
( ( ! [I,J] :
( ( leq(n0,I)
& leq(I,M)
& leq(n0,J)
& leq(J,M) )
=> a_select3(D,I,J) = a_select3(D,J,I) )
& ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(A,I,J) = a_select3(A,J,I) )
& ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(F,I,J) = a_select3(F,J,I) ) )
=> ! [I,J] :
( ( leq(n0,I)
& leq(I,N)
& leq(n0,J)
& leq(J,N) )
=> a_select3(tptp_madd(A,tptp_mmul(B,tptp_mmul(tptp_madd(tptp_mmul(C,tptp_mmul(D,trans(C))),tptp_mmul(E,tptp_mmul(F,trans(E)))),trans(B)))),I,J) = a_select3(tptp_madd(A,tptp_mmul(B,tptp_mmul(tptp_madd(tptp_mmul(C,tptp_mmul(D,trans(C))),tptp_mmul(E,tptp_mmul(F,trans(E)))),trans(B)))),J,I) ) ) ).
%----handling of sums
fof(sum_plus_base,axiom,
! [Body] : sum(n0,tptp_minus_1,Body) = n0 ).
fof(sum_plus_base_float,axiom,
! [Body] : tptp_float_0_0 = sum(n0,tptp_minus_1,Body) ).
%----AXIOMS NECESSARY FOR UNSIMPLIFIED TASKS
%----successor/predecessor
fof(succ_tptp_minus_1,axiom,
succ(tptp_minus_1) = n0 ).
fof(succ_plus_1_r,axiom,
! [X] : plus(X,n1) = succ(X) ).
fof(succ_plus_1_l,axiom,
! [X] : plus(n1,X) = succ(X) ).
fof(succ_plus_2_r,axiom,
! [X] : plus(X,n2) = succ(succ(X)) ).
fof(succ_plus_2_l,axiom,
! [X] : plus(n2,X) = succ(succ(X)) ).
fof(succ_plus_3_r,axiom,
! [X] : plus(X,n3) = succ(succ(succ(X))) ).
fof(succ_plus_3_l,axiom,
! [X] : plus(n3,X) = succ(succ(succ(X))) ).
fof(succ_plus_4_r,axiom,
! [X] : plus(X,n4) = succ(succ(succ(succ(X)))) ).
fof(succ_plus_4_l,axiom,
! [X] : plus(n4,X) = succ(succ(succ(succ(X)))) ).
fof(succ_plus_5_r,axiom,
! [X] : plus(X,n5) = succ(succ(succ(succ(succ(X))))) ).
fof(succ_plus_5_l,axiom,
! [X] : plus(n5,X) = succ(succ(succ(succ(succ(X))))) ).
fof(pred_minus_1,axiom,
! [X] : minus(X,n1) = pred(X) ).
fof(pred_succ,axiom,
! [X] : pred(succ(X)) = X ).
fof(succ_pred,axiom,
! [X] : succ(pred(X)) = X ).
%----leq/gt and successor
fof(leq_succ_succ,axiom,
! [X,Y] :
( leq(succ(X),succ(Y))
<=> leq(X,Y) ) ).
fof(leq_succ_gt,axiom,
! [X,Y] :
( leq(succ(X),Y)
=> gt(Y,X) ) ).
%----leq/gt and plus/minus
fof(leq_minus,axiom,
! [X,Y] :
( leq(minus(X,Y),X)
=> leq(n0,Y) ) ).
%----select_update
fof(sel3_update_1,axiom,
! [X,U,V,VAL] : a_select3(tptp_update3(X,U,V,VAL),U,V) = VAL ).
fof(sel3_update_2,axiom,
! [I,J,U,V,X,VAL,VAL2] :
( ( I != U
& J = V
& a_select3(X,U,V) = VAL )
=> a_select3(tptp_update3(X,I,J,VAL2),U,V) = VAL ) ).
fof(sel3_update_3,axiom,
! [I,J,U,V,X,VAL] :
( ( ! [I0,J0] :
( ( leq(n0,I0)
& leq(n0,J0)
& leq(I0,U)
& leq(J0,V) )
=> a_select3(X,I0,J0) = VAL )
& leq(n0,I)
& leq(I,U)
& leq(n0,J)
& leq(J,V) )
=> a_select3(tptp_update3(X,U,V,VAL),I,J) = VAL ) ).
fof(sel2_update_1,axiom,
! [X,U,VAL] : a_select2(tptp_update2(X,U,VAL),U) = VAL ).
fof(sel2_update_2,axiom,
! [I,U,X,VAL,VAL2] :
( ( I != U
& a_select2(X,U) = VAL )
=> a_select2(tptp_update2(X,I,VAL2),U) = VAL ) ).
fof(sel2_update_3,axiom,
! [I,U,X,VAL] :
( ( ! [I0] :
( ( leq(n0,I0)
& leq(I0,U) )
=> a_select2(X,I0) = VAL )
& leq(n0,I)
& leq(I,U) )
=> a_select2(tptp_update2(X,U,VAL),I) = VAL ) ).
%----True
fof(ttrue,axiom,
true ).
%----def and use inequality
fof(defuse,axiom,
def != use ).
./SWV004-0.ax
%------------------------------------------------------------------------------
% File : SWV004-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for messages
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Message.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 40 ( 9 unt; 6 nHn; 38 RR)
% Number of literals : 80 ( 26 equ; 41 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 17 ( 17 usr; 4 con; 0-3 aty)
% Number of variables : 91 ( 21 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax
%------------------------------------------------------------------------------
cnf(cls_Message_OCrypt__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OHash__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__parts_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__parts_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth_0,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_n),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_n),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_Oagent_Odistinct__1__iff1_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OFriend(V_nat_H) ).
cnf(cls_Message_Oagent_Odistinct__2__iff1_0,axiom,
c_Message_Oagent_OFriend(V_nat_H) != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__3__iff1_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__4__iff1_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__5__iff1_0,axiom,
c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__6__iff1_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OFriend(V_nat) ).
cnf(cls_Message_Oagent_Oinject__iff1_0,axiom,
( c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OFriend(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__analzD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oanalz(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oin__parts__UnE_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_union(V_G,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_G),tc_Message_Omsg) ) ).
cnf(cls_Message_Omsg_Oinject__1__iff1_0,axiom,
( c_Message_Omsg_OAgent(V_agent) != c_Message_Omsg_OAgent(V_agent_H)
| V_agent = V_agent_H ) ).
cnf(cls_Message_Omsg_Oinject__2__iff1_0,axiom,
( c_Message_Omsg_ONumber(V_nat) != c_Message_Omsg_ONumber(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__3__iff1_0,axiom,
( c_Message_Omsg_ONonce(V_nat) != c_Message_Omsg_ONonce(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__4__iff1_0,axiom,
( c_Message_Omsg_OKey(V_nat) != c_Message_Omsg_OKey(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__5__iff1_0,axiom,
( c_Message_Omsg_OHash(V_msg) != c_Message_Omsg_OHash(V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Omsg_Oinject__6__iff1_0,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg1 = V_msg1_H ) ).
cnf(cls_Message_Omsg_Oinject__6__iff1_1,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg2 = V_msg2_H ) ).
cnf(cls_Message_Omsg_Oinject__7__iff1_0,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__7__iff1_1,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Oparts_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__emptyE_0,axiom,
~ c_in(V_X,c_Message_Oparts(c_emptyset),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__partsD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(c_Message_Oparts(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OAgent_0,axiom,
c_in(c_Message_Omsg_OAgent(V_agt),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Osynth_OCrypt_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OHash_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OMPair_0,axiom,
( ~ c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_ONumber_0,axiom,
c_in(c_Message_Omsg_ONumber(V_n),c_Message_Osynth(V_H),tc_Message_Omsg) ).
%------------------------------------------------------------------------------
./SWV005-0.ax
%------------------------------------------------------------------------------
% File : SWV005-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for messages
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Message-simp.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 44 ( 30 unt; 0 nHn; 25 RR)
% Number of literals : 58 ( 51 equ; 21 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 23 ( 23 usr; 7 con; 0-3 aty)
% Number of variables : 77 ( 29 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax
%------------------------------------------------------------------------------
cnf(cls_Message_OMPair__parts_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__parts_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oagent_Odistinct__1_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OFriend(V_nat_H) ).
cnf(cls_Message_Oagent_Odistinct__2_0,axiom,
c_Message_Oagent_OFriend(V_nat_H) != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__3_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__4_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__5_0,axiom,
c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__6_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OFriend(V_nat) ).
cnf(cls_Message_Oagent_Oinject_0,axiom,
( c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OFriend(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Oagent_Osize__1_0,axiom,
c_Nat_Osize(c_Message_Oagent_OServer,tc_Message_Oagent) = c_0 ).
cnf(cls_Message_Oagent_Osize__2_0,axiom,
c_Nat_Osize(c_Message_Oagent_OFriend(V_nat),tc_Message_Oagent) = c_0 ).
cnf(cls_Message_Oagent_Osize__3_0,axiom,
c_Nat_Osize(c_Message_Oagent_OSpy,tc_Message_Oagent) = c_0 ).
cnf(cls_Message_OinvKey_A_IinvKey_Ay_J_A_61_61_Ay_0,axiom,
c_Message_OinvKey(c_Message_OinvKey(V_y)) = V_y ).
cnf(cls_Message_OinvKey__eq_0,axiom,
( c_Message_OinvKey(V_K) != c_Message_OinvKey(V_K_H)
| V_K = V_K_H ) ).
cnf(cls_Message_OkeysFor__Un_0,axiom,
c_Message_OkeysFor(c_union(V_H,V_H_H,tc_Message_Omsg)) = c_union(c_Message_OkeysFor(V_H),c_Message_OkeysFor(V_H_H),tc_nat) ).
cnf(cls_Message_OkeysFor__empty_0,axiom,
c_Message_OkeysFor(c_emptyset) = c_emptyset ).
cnf(cls_Message_OkeysFor__insert__Agent_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_OAgent(V_A),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_OkeysFor__insert__Crypt_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_OinvKey(V_K),c_Message_OkeysFor(V_H),tc_nat) ).
cnf(cls_Message_OkeysFor__insert__Hash_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_OkeysFor__insert__Key_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_OkeysFor__insert__MPair_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_OkeysFor__insert__Nonce_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_OkeysFor__insert__Number_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_Omsg_ONumber(V_N),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_Omsg_Oinject__1_0,axiom,
( c_Message_Omsg_OAgent(V_agent) != c_Message_Omsg_OAgent(V_agent_H)
| V_agent = V_agent_H ) ).
cnf(cls_Message_Omsg_Oinject__2_0,axiom,
( c_Message_Omsg_ONumber(V_nat) != c_Message_Omsg_ONumber(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__3_0,axiom,
( c_Message_Omsg_ONonce(V_nat) != c_Message_Omsg_ONonce(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__4_0,axiom,
( c_Message_Omsg_OKey(V_nat) != c_Message_Omsg_OKey(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__5_0,axiom,
( c_Message_Omsg_OHash(V_msg) != c_Message_Omsg_OHash(V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Omsg_Oinject__6_0,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg1 = V_msg1_H ) ).
cnf(cls_Message_Omsg_Oinject__6_1,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg2 = V_msg2_H ) ).
cnf(cls_Message_Omsg_Oinject__7_0,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__7_1,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Omsg_Osize__1_0,axiom,
c_Nat_Osize(c_Message_Omsg_OAgent(V_agent),tc_Message_Omsg) = c_0 ).
cnf(cls_Message_Omsg_Osize__2_0,axiom,
c_Nat_Osize(c_Message_Omsg_ONumber(V_nat),tc_Message_Omsg) = c_0 ).
cnf(cls_Message_Omsg_Osize__3_0,axiom,
c_Nat_Osize(c_Message_Omsg_ONonce(V_nat),tc_Message_Omsg) = c_0 ).
cnf(cls_Message_Omsg_Osize__4_0,axiom,
c_Nat_Osize(c_Message_Omsg_OKey(V_nat),tc_Message_Omsg) = c_0 ).
cnf(cls_Message_Omsg_Osize__5_0,axiom,
c_Nat_Osize(c_Message_Omsg_OHash(V_msg),tc_Message_Omsg) = c_plus(c_Nat_Osize(V_msg,tc_Message_Omsg),c_Suc(c_0),tc_nat) ).
cnf(cls_Message_Omsg_Osize__6_0,axiom,
c_Nat_Osize(c_Message_Omsg_OMPair(V_msg1,V_msg2),tc_Message_Omsg) = c_plus(c_plus(c_Nat_Osize(V_msg1,tc_Message_Omsg),c_Nat_Osize(V_msg2,tc_Message_Omsg),tc_nat),c_Suc(c_0),tc_nat) ).
cnf(cls_Message_Omsg_Osize__7_0,axiom,
c_Nat_Osize(c_Message_Omsg_OCrypt(V_nat,V_msg),tc_Message_Omsg) = c_plus(c_Nat_Osize(V_msg,tc_Message_Omsg),c_Suc(c_0),tc_nat) ).
cnf(cls_Message_Oparts_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__Un_0,axiom,
c_Message_Oparts(c_union(V_G,V_H,tc_Message_Omsg)) = c_union(c_Message_Oparts(V_G),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__emptyE_0,axiom,
~ c_in(V_X,c_Message_Oparts(c_emptyset),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__empty_0,axiom,
c_Message_Oparts(c_emptyset) = c_emptyset ).
cnf(cls_Message_Ostrange__Un__eq_0,axiom,
c_union(V_A,c_union(V_B,V_A,T_a),T_a) = c_union(V_B,V_A,T_a) ).
%------------------------------------------------------------------------------
./SWV005-1.ax
%------------------------------------------------------------------------------
% File : SWV005-1 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for messages
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Message-simp2.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 51 ( 19 unt; 9 nHn; 30 RR)
% Number of literals : 93 ( 21 equ; 33 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 18 ( 18 usr; 3 con; 0-3 aty)
% Number of variables : 112 ( 6 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax
%------------------------------------------------------------------------------
cnf(cls_Message_OAgent__synth_0,axiom,
c_in(c_Message_Omsg_OAgent(V_A),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_OCrypt__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OHash__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_N),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_ONumber__synth_0,axiom,
c_in(c_Message_Omsg_ONumber(V_n),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__Crypt__if_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__Crypt__if_1,axiom,
( c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__analzD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oanalz(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__empty_0,axiom,
c_Message_Oanalz(c_emptyset) = c_emptyset ).
cnf(cls_Message_Oanalz__idem_0,axiom,
c_Message_Oanalz(c_Message_Oanalz(V_H)) = c_Message_Oanalz(V_H) ).
cnf(cls_Message_Oanalz__insert__Agent_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OAgent(V_agt),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OAgent(V_agt),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Hash_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OHash(V_X),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Key_0,axiom,
( c_in(V_K,c_Message_OkeysFor(c_Message_Oanalz(V_H)),tc_nat)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OKey(V_K),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__insert__MPair_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(c_insert(V_X,c_insert(V_Y,V_H,tc_Message_Omsg),tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Nonce_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONonce(V_N),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Number_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_ONumber(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONumber(V_N),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__parts_0,axiom,
c_Message_Oanalz(c_Message_Oparts(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oanalz__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Oanalz(V_G),c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oanalz__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Oanalz(V_G),c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oin__parts__UnE_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_union(V_G,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_G),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__analz_0,axiom,
c_Message_Oparts(c_Message_Oanalz(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oparts__cut__eq_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)) = c_Message_Oparts(V_H) ) ).
cnf(cls_Message_Oparts__idem_0,axiom,
c_Message_Oparts(c_Message_Oparts(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oparts__insert__Agent_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OAgent(V_agt),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OAgent(V_agt),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Crypt_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Hash_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OHash(V_X),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Key_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OKey(V_K),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__MPair_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(c_insert(V_X,c_insert(V_Y,V_H,tc_Message_Omsg),tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Nonce_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Number_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_ONumber(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONumber(V_N),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__partsD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(c_Message_Oparts(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Oparts(V_G),c_Message_Oparts(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Oparts(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oparts__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Oparts(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Oparts(V_G),c_Message_Oparts(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Osynth_OCrypt_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OHash_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OMPair_0,axiom,
( ~ c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Osynth(V_G),c_Message_Osynth(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Osynth(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Osynth__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Osynth(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Osynth(V_G),c_Message_Osynth(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Osynth__synthD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(c_Message_Osynth(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
%------------------------------------------------------------------------------
./SWV005-2.ax
%------------------------------------------------------------------------------
% File : SWV005-2 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for events
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Event-simp.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 119 ( 57 unt; 17 nHn; 78 RR)
% Number of literals : 200 ( 87 equ; 83 neg)
% Maximal clause size : 4 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 35 ( 35 usr; 10 con; 0-3 aty)
% Number of variables : 324 ( 123 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OServer_A_58_Abad_A_61_61_AFalse_0,axiom,
~ c_in(c_Message_Oagent_OServer,c_Event_Obad,tc_Message_Oagent) ).
cnf(cls_Event_OSpy_A_58_Abad_A_61_61_ATrue_0,axiom,
c_in(c_Message_Oagent_OSpy,c_Event_Obad,tc_Message_Oagent) ).
cnf(cls_Event_Oc_A_58_Aparts_A_Iknows_ASpy_Aevs1_J_A_61_61_62_Ac_A_58_Aused_Aevs1_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_c,c_Event_Oused(V_evs),tc_Message_Omsg) ) ).
cnf(cls_Event_Oevent_Odistinct__1_0,axiom,
c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__2_0,axiom,
c_Event_Oevent_OGets(V_agent_H,V_msg_H) != c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) ).
cnf(cls_Event_Oevent_Odistinct__3_0,axiom,
c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__4_0,axiom,
c_Event_Oevent_ONotes(V_agent_H,V_msg_H) != c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) ).
cnf(cls_Event_Oevent_Odistinct__5_0,axiom,
c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__6_0,axiom,
c_Event_Oevent_ONotes(V_agent_H,V_msg_H) != c_Event_Oevent_OGets(V_agent,V_msg) ).
cnf(cls_Event_Oevent_Oinject__1_0,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_agent1 = V_agent1_H ) ).
cnf(cls_Event_Oevent_Oinject__1_1,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_agent2 = V_agent2_H ) ).
cnf(cls_Event_Oevent_Oinject__1_2,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Event_Oevent_Oinject__2_0,axiom,
( c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H)
| V_agent = V_agent_H ) ).
cnf(cls_Event_Oevent_Oinject__2_1,axiom,
( c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Event_Oevent_Oinject__3_0,axiom,
( c_Event_Oevent_ONotes(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H)
| V_agent = V_agent_H ) ).
cnf(cls_Event_Oevent_Oinject__3_1,axiom,
( c_Event_Oevent_ONotes(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Event_Oevent_Osize__1_0,axiom,
c_Nat_Osize(c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg),tc_Event_Oevent) = c_0 ).
cnf(cls_Event_Oevent_Osize__2_0,axiom,
c_Nat_Osize(c_Event_Oevent_OGets(V_agent,V_msg),tc_Event_Oevent) = c_0 ).
cnf(cls_Event_Oevent_Osize__3_0,axiom,
c_Nat_Osize(c_Event_Oevent_ONotes(V_agent,V_msg),tc_Event_Oevent) = c_0 ).
cnf(cls_Event_OkeysFor__synth_H_0,axiom,
( ~ c_in(V_K,c_Message_OkeysFor(c_Message_Osynth(V_H)),tc_nat)
| c_in(V_K,c_Message_OkeysFor(V_H),tc_nat)
| c_in(c_Message_Omsg_OKey(v_sko__uhi(V_H,V_K)),V_H,tc_Message_Omsg) ) ).
cnf(cls_Event_OkeysFor__synth_H_1,axiom,
( ~ c_in(V_K,c_Message_OkeysFor(c_Message_Osynth(V_H)),tc_nat)
| c_in(V_K,c_Message_OkeysFor(V_H),tc_nat)
| V_K = c_Message_OinvKey(v_sko__uhi(V_H,V_K)) ) ).
cnf(cls_Event_OkeysFor__synth_H_2,axiom,
( ~ c_in(V_K,c_Message_OkeysFor(V_H),tc_nat)
| c_in(V_K,c_Message_OkeysFor(c_Message_Osynth(V_H)),tc_nat) ) ).
cnf(cls_Event_OkeysFor__synth_H_3,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_U),V_H,tc_Message_Omsg)
| c_in(c_Message_OinvKey(V_U),c_Message_OkeysFor(c_Message_Osynth(V_H)),tc_nat) ) ).
cnf(cls_Event_Oknows_Oknows__Nil_0,axiom,
c_Event_Oknows(V_A,c_List_Olist_ONil) = c_Event_OinitState(V_A) ).
cnf(cls_Event_Oknows__Spy__Gets_0,axiom,
c_Event_Oknows(c_Message_Oagent_OSpy,c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent)) = c_Event_Oknows(c_Message_Oagent_OSpy,V_evs) ).
cnf(cls_Event_Oknows__Spy__Notes_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_Event_Oknows(c_Message_Oagent_OSpy,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent)) = c_insert(V_X,c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Event_Oknows__Spy__Notes_1,axiom,
( c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_Event_Oknows(c_Message_Oagent_OSpy,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent)) = c_Event_Oknows(c_Message_Oagent_OSpy,V_evs) ) ).
cnf(cls_Event_Oknows__Spy__Says_0,axiom,
c_Event_Oknows(c_Message_Oagent_OSpy,c_List_Olist_OCons(c_Event_Oevent_OSays(V_A,V_B,V_X),V_evs,tc_Event_Oevent)) = c_insert(V_X,c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ).
cnf(cls_Event_Oused__Gets_0,axiom,
c_Event_Oused(c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent)) = c_Event_Oused(V_evs) ).
cnf(cls_Event_Oused__Notes_0,axiom,
c_Event_Oused(c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent)) = c_union(c_Message_Oparts(c_insert(V_X,c_emptyset,tc_Message_Omsg)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Event_Oused__Says_0,axiom,
c_Event_Oused(c_List_Olist_OCons(c_Event_Oevent_OSays(V_A,V_B,V_X),V_evs,tc_Event_Oevent)) = c_union(c_Message_Oparts(c_insert(V_X,c_emptyset,tc_Message_Omsg)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Message_OAgent__synth_0,axiom,
c_in(c_Message_Omsg_OAgent(V_A),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_OCrypt__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OFake__analz__eq_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_Message_Osynth(c_Message_Oanalz(c_insert(V_X,V_H,tc_Message_Omsg))) = c_Message_Osynth(c_Message_Oanalz(V_H)) ) ).
cnf(cls_Message_OHPair__eq_0,axiom,
( c_Message_OHPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_X_H = V_X ) ).
cnf(cls_Message_OHPair__eq_1,axiom,
( c_Message_OHPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OHPair__eq__MPair_0,axiom,
( c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OMPair(V_X_H,V_Y_H)
| V_X_H = c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)) ) ).
cnf(cls_Message_OHPair__eq__MPair_1,axiom,
( c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OMPair(V_X_H,V_Y_H)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OHPair__eq__MPair_2,axiom,
c_Message_OHPair(V_X,V_x) = c_Message_Omsg_OMPair(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_x)),V_x) ).
cnf(cls_Message_OHPair__neqs__1_0,axiom,
c_Message_Omsg_OAgent(V_A) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__2_0,axiom,
c_Message_Omsg_ONonce(V_N) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__3_0,axiom,
c_Message_Omsg_ONumber(V_N) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__4_0,axiom,
c_Message_Omsg_OKey(V_K) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__5_0,axiom,
c_Message_Omsg_OHash(V_Z) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__6_0,axiom,
c_Message_Omsg_OCrypt(V_K,V_X_H) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__synth__analz_0,axiom,
( ~ c_in(c_Message_OHPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OHPair__synth__analz_1,axiom,
( ~ c_in(c_Message_OHPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OHPair__synth__analz_2,axiom,
( ~ c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_OHPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_AAgent_AA2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OAgent(V_A) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_ACrypt_AK2_AX_H2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OCrypt(V_K,V_X_H) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_AHash_AZ2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OHash(V_Z) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_AKey_AK2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OKey(V_K) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_ANonce_AN2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_ONonce(V_N) ).
cnf(cls_Message_OHash_91X2_93_AY2_A_61_ANumber_AN2_A_61_61_AFalse_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_ONumber(V_N) ).
cnf(cls_Message_OHash__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OHash__synth__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OHash__synth__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__eq__HPair_0,axiom,
( c_Message_Omsg_OMPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_X_H = c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)) ) ).
cnf(cls_Message_OMPair__eq__HPair_1,axiom,
( c_Message_Omsg_OMPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OMPair__eq__HPair_2,axiom,
c_Message_Omsg_OMPair(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_x)),V_x) = c_Message_OHPair(V_X,V_x) ).
cnf(cls_Message_OMPair__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz_2,axiom,
( ~ c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth__eq_0,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth__eq_1,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_N),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_ONumber__synth_0,axiom,
c_in(c_Message_Omsg_ONumber(V_n),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__Crypt__if_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__Crypt__if_1,axiom,
( c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__analzD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oanalz(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__analz__Un_0,axiom,
c_Message_Oanalz(c_union(c_Message_Oanalz(V_G),V_H,tc_Message_Omsg)) = c_Message_Oanalz(c_union(V_G,V_H,tc_Message_Omsg)) ).
cnf(cls_Message_Oanalz__conj__parts_0,axiom,
( ~ c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__empty_0,axiom,
c_Message_Oanalz(c_emptyset) = c_emptyset ).
cnf(cls_Message_Oanalz__idem_0,axiom,
c_Message_Oanalz(c_Message_Oanalz(V_H)) = c_Message_Oanalz(V_H) ).
cnf(cls_Message_Oanalz__insert__Agent_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OAgent(V_agt),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OAgent(V_agt),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__HPair_0,axiom,
c_Message_Oanalz(c_insert(c_Message_OHPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_OHPair(V_X,V_Y),c_insert(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oanalz(c_insert(V_Y,V_H,tc_Message_Omsg)),tc_Message_Omsg),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Hash_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OHash(V_X),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Key_0,axiom,
( c_in(V_K,c_Message_OkeysFor(c_Message_Oanalz(V_H)),tc_nat)
| c_Message_Oanalz(c_insert(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OKey(V_K),c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__insert__MPair_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(c_insert(V_X,c_insert(V_Y,V_H,tc_Message_Omsg),tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Nonce_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONonce(V_N),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__insert__Number_0,axiom,
c_Message_Oanalz(c_insert(c_Message_Omsg_ONumber(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONumber(V_N),c_Message_Oanalz(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__parts_0,axiom,
c_Message_Oanalz(c_Message_Oparts(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oanalz__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Oanalz(V_G),c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oanalz__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Oanalz(V_G),c_Message_Oanalz(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oanalz__synth_0,axiom,
c_Message_Oanalz(c_Message_Osynth(V_H)) = c_union(c_Message_Oanalz(V_H),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oanalz__synth__Un_0,axiom,
c_Message_Oanalz(c_union(c_Message_Osynth(V_G),V_H,tc_Message_Omsg)) = c_union(c_Message_Oanalz(c_union(V_G,V_H,tc_Message_Omsg)),c_Message_Osynth(V_G),tc_Message_Omsg) ).
cnf(cls_Message_Oin__parts__UnE_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_union(V_G,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_G),tc_Message_Omsg) ) ).
cnf(cls_Message_OkeysFor__insert__HPair_0,axiom,
c_Message_OkeysFor(c_insert(c_Message_OHPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_Message_OkeysFor(V_H) ).
cnf(cls_Message_Oparts__analz_0,axiom,
c_Message_Oparts(c_Message_Oanalz(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oparts__cut__eq_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)) = c_Message_Oparts(V_H) ) ).
cnf(cls_Message_Oparts__idem_0,axiom,
c_Message_Oparts(c_Message_Oparts(V_H)) = c_Message_Oparts(V_H) ).
cnf(cls_Message_Oparts__insert__Agent_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OAgent(V_agt),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OAgent(V_agt),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Crypt_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__HPair_0,axiom,
c_Message_Oparts(c_insert(c_Message_OHPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_OHPair(V_X,V_Y),c_insert(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)),c_Message_Oparts(c_insert(V_Y,V_H,tc_Message_Omsg)),tc_Message_Omsg),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Hash_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OHash(V_X),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Key_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OKey(V_K),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__MPair_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(c_insert(V_X,c_insert(V_Y,V_H,tc_Message_Omsg),tc_Message_Omsg)),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Nonce_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_ONonce(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__insert__Number_0,axiom,
c_Message_Oparts(c_insert(c_Message_Omsg_ONumber(V_N),V_H,tc_Message_Omsg)) = c_insert(c_Message_Omsg_ONumber(V_N),c_Message_Oparts(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__partsD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(c_Message_Oparts(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Oparts(V_G),c_Message_Oparts(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Oparts(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oparts__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Oparts(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Oparts(V_G),c_Message_Oparts(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Oparts__synth_0,axiom,
c_Message_Oparts(c_Message_Osynth(V_H)) = c_union(c_Message_Oparts(V_H),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Osynth_OCrypt_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OHash_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OMPair_0,axiom,
( ~ c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth__subset__iff_0,axiom,
( ~ c_lessequals(c_Message_Osynth(V_G),c_Message_Osynth(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(V_G,c_Message_Osynth(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Osynth__subset__iff_1,axiom,
( ~ c_lessequals(V_G,c_Message_Osynth(V_H),tc_set(tc_Message_Omsg))
| c_lessequals(c_Message_Osynth(V_G),c_Message_Osynth(V_H),tc_set(tc_Message_Omsg)) ) ).
cnf(cls_Message_Osynth__synthD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(c_Message_Osynth(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
%------------------------------------------------------------------------------
./SWV005-3.ax
%------------------------------------------------------------------------------
% File : SWV005-3 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for public, simplified
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Public-simp.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 42 ( 32 unt; 0 nHn; 24 RR)
% Number of literals : 52 ( 24 equ; 24 neg)
% Maximal clause size : 2 ( 1 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 28 ( 28 usr; 12 con; 0-4 aty)
% Number of variables : 92 ( 69 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax
%------------------------------------------------------------------------------
cnf(cls_Public_OCrypt__notin__used__empty_0,axiom,
~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Event_Oused(c_List_Olist_ONil),tc_Message_Omsg) ).
cnf(cls_Public_OMPair__used_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_OMPair__used_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_X,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_ONonce__notin__initState_0,axiom,
~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(c_Event_OinitState(V_B)),tc_Message_Omsg) ).
cnf(cls_Public_ONonce__notin__used__empty_0,axiom,
~ c_in(c_Message_Omsg_ONonce(V_N),c_Event_Oused(c_List_Olist_ONil),tc_Message_Omsg) ).
cnf(cls_Public_OSpy__spies__bad__privateKey_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_OSpy__spies__bad__shrK_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_Oanalz__spies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ).
cnf(cls_Public_OinvKey__K_0,axiom,
( ~ c_in(V_y,c_Message_OsymKeys,tc_nat)
| c_Message_OinvKey(V_y) = V_y ) ).
cnf(cls_Public_OinvKey__shrK_0,axiom,
c_Message_OinvKey(c_Public_OshrK(V_A)) = c_Public_OshrK(V_A) ).
cnf(cls_Public_Okeymode_Ocases__1_0,axiom,
c_Public_Okeymode_Okeymode__case(V_y,V_f2,c_Public_Okeymode_OSignature,T_a) = V_y ).
cnf(cls_Public_Okeymode_Ocases__2_0,axiom,
c_Public_Okeymode_Okeymode__case(V_f1,V_y,c_Public_Okeymode_OEncryption,T_a) = V_y ).
cnf(cls_Public_Okeymode_Odistinct__1_0,axiom,
c_Public_Okeymode_OSignature != c_Public_Okeymode_OEncryption ).
cnf(cls_Public_Okeymode_Odistinct__2_0,axiom,
c_Public_Okeymode_OEncryption != c_Public_Okeymode_OSignature ).
cnf(cls_Public_Okeymode_Orecs__1_0,axiom,
c_Public_Okeymode_Okeymode__rec(V_y,V_f2,c_Public_Okeymode_OSignature,T_a) = V_y ).
cnf(cls_Public_Okeymode_Orecs__2_0,axiom,
c_Public_Okeymode_Okeymode__rec(V_f1,V_y,c_Public_Okeymode_OEncryption,T_a) = V_y ).
cnf(cls_Public_Okeymode_Osize__1_0,axiom,
c_Nat_Osize(c_Public_Okeymode_OSignature,tc_Public_Okeymode) = c_0 ).
cnf(cls_Public_Okeymode_Osize__2_0,axiom,
c_Nat_Osize(c_Public_Okeymode_OEncryption,tc_Public_Okeymode) = c_0 ).
cnf(cls_Public_OkeysFor__parts__initState_0,axiom,
c_Message_OkeysFor(c_Message_Oparts(c_Event_OinitState(V_C))) = c_emptyset ).
cnf(cls_Public_Onot__symKeys__priK_0,axiom,
~ c_in(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_Onot__symKeys__pubK_0,axiom,
~ c_in(c_Public_OpublicKey(V_b,V_A),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OpriEK__noteq__shrK_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(c_Public_Okeymode_OEncryption,V_A)) != c_Public_OshrK(V_B) ).
cnf(cls_Public_OpriK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OpriK__neq__shrK_0,axiom,
c_Public_OshrK(V_A) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_C)) ).
cnf(cls_Public_OprivateKey_Ab1_AA1_A_61_ApublicKey_Ac1_AA_H1_A_61_61_AFalse_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) != c_Public_OpublicKey(V_c,V_A_H) ).
cnf(cls_Public_OprivateKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpubK__neq__shrK_0,axiom,
c_Public_OshrK(V_A) != c_Public_OpublicKey(V_b,V_C) ).
cnf(cls_Public_OpublicKey__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_OinitState(V_B),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__inject_0,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_b = V_c ) ).
cnf(cls_Public_OpublicKey__inject_1,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_A = V_A_H ) ).
cnf(cls_Public_OpublicKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__neq__privateKey_0,axiom,
c_Public_OpublicKey(V_c,V_A_H) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) ).
cnf(cls_Public_OshrK_AX1_A_58_AsymKeys_A_61_61_ATrue_0,axiom,
c_in(c_Public_OshrK(V_X),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OshrK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__knows_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(V_A,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__injective_0,axiom,
( c_Public_OshrK(V_x) != c_Public_OshrK(V_y)
| V_x = V_y ) ).
cnf(cls_Public_OshrK__neq__priK_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(V_b,V_C)) != c_Public_OshrK(V_A) ).
cnf(cls_Public_OshrK__neq__pubK_0,axiom,
c_Public_OpublicKey(V_b,V_C) != c_Public_OshrK(V_A) ).
cnf(cls_Public_Ospies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OsymKeys__invKey__iff_0,axiom,
( ~ c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat)
| c_in(V_K,c_Message_OsymKeys,tc_nat) ) ).
cnf(cls_Public_OsymKeys__invKey__iff_1,axiom,
( ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat) ) ).
%------------------------------------------------------------------------------
./SWV005-4.ax
%------------------------------------------------------------------------------
% File : SWV005-4 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Yahalom, simplified
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Yahalom-simp.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 0 unt; 0 nHn; 8 RR)
% Number of literals : 22 ( 0 equ; 14 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 3-3 aty)
% Number of functors : 19 ( 19 usr; 6 con; 0-3 aty)
% Number of variables : 21 ( 4 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax,
% SWV005-3.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__analz__Spy__dest_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Message_OFake__parts__insert__in__Un__dest_0,axiom,
( ~ c_in(V_Z,c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Z,c_union(c_Message_Osynth(c_Message_Oanalz(V_H)),c_Message_Oparts(V_H),tc_Message_Omsg),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts_OBody__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_OGets__imp__analz__Spy__dest_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_OSpy__analz__shrK_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent) ) ).
cnf(cls_Yahalom_OSpy__analz__shrK_1,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_OSpy__see__shrK_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent) ) ).
cnf(cls_Yahalom_OSpy__see__shrK_1,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
%------------------------------------------------------------------------------
./SWV005-5.ax
%------------------------------------------------------------------------------
% File : SWV005-5 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Yahalom
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Yahalom.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 12 ( 1 unt; 3 nHn; 8 RR)
% Number of literals : 30 ( 2 equ; 16 neg)
% Maximal clause size : 4 ( 2 avg)
% Maximal term depth : 9 ( 2 avg)
% Number of predicates : 3 ( 2 usr; 0 prp; 2-3 aty)
% Number of functors : 29 ( 29 usr; 9 con; 0-4 aty)
% Number of variables : 63 ( 23 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax,
% SWV005-3.ax, SWV005-4.ax
%------------------------------------------------------------------------------
cnf(cls_Yahalom_OA__trusts__YM3_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_OGets__imp__Says_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(v_sko__wPE(V_B,V_X,V_evs),V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Gets_0,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent))
| c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Gets_1,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
| c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent)) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Notes_0,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent))
| c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Notes_1,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
| c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent)) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Says_0,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent))
| c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
| c_Message_Oagent_OServer = V_S ) ).
cnf(cls_Yahalom_OKeyWithNonce__Says_1,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent))
| c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
| V_X = c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_sko__2VZ(V_A,V_K,V_NB,V_X)),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(v_sko__2Va(V_A,V_K,V_NB,V_X),c_Message_Omsg_ONonce(V_NB))))),v_sko__2Vb(V_A,V_K,V_NB,V_X)) ) ).
cnf(cls_Yahalom_OKeyWithNonce__Says_2,axiom,
c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_U),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_V,c_Message_Omsg_ONonce(V_NB))))),V_W)),V_evs,tc_Event_Oevent)) ).
cnf(cls_Yahalom_OKeyWithNonce__Says_3,axiom,
( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
| c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent)) ) ).
cnf(cls_Yahalom_OSays__Server__not__shrK_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(c_Public_OshrK(V_x)),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_Onew__keys__not__used_0,axiom,
( ~ c_in(V_K,c_Message_OkeysFor(c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs))),tc_nat)
| ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| c_in(c_Message_Omsg_OKey(V_K),c_Event_Oused(V_evs),tc_Message_Omsg) ) ).
%------------------------------------------------------------------------------
./SWV005-6.ax
%------------------------------------------------------------------------------
% File : SWV005-6 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Yahalom, A Said
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Yahalom__A_Said.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 8 ( 0 unt; 1 nHn; 8 RR)
% Number of literals : 28 ( 4 equ; 19 neg)
% Maximal clause size : 4 ( 3 avg)
% Maximal term depth : 9 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 24 ( 24 usr; 9 con; 0-4 aty)
% Number of variables : 62 ( 29 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax,
% SWV005-3.ax, SWV005-4.ax, SWV005-5.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__knows__Spy_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_OCrypt__Spy__analz__bad_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),V_X),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Public_OCrypt__imp__keysFor_0,axiom,
( ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(V_K,c_Message_OkeysFor(V_H),tc_nat) ) ).
cnf(cls_Yahalom_OB__trusts__YM4__shrK_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_B,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_sko__2ji(V_A,V_B,V_K,V_evs)),c_Message_Omsg_ONonce(v_sko__2jj(V_A,V_B,V_K,V_evs)))))),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_Ounique__session__keys_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_A = V_A_H ) ).
cnf(cls_Yahalom_Ounique__session__keys_1,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_B = V_B_H ) ).
cnf(cls_Yahalom_Ounique__session__keys_2,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_na = V_na_H ) ).
cnf(cls_Yahalom_Ounique__session__keys_3,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_nb = V_nb_H ) ).
%------------------------------------------------------------------------------
./SWV005-7.ax
%------------------------------------------------------------------------------
% File : SWV005-7 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Yahalom, Spy
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Yahalom__Spy.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 14 ( 0 unt; 6 nHn; 14 RR)
% Number of literals : 61 ( 11 equ; 38 neg)
% Maximal clause size : 6 ( 4 avg)
% Maximal term depth : 8 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 23 ( 23 usr; 7 con; 0-3 aty)
% Number of variables : 131 ( 69 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax,
% SWV005-3.ax, SWV005-4.ax, SWV005-5.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__spies_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_Oanalz__shrK__Decrypt_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_OSays__Server__imp__YM2_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(V_k,c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OGets(c_Message_Oagent_OServer,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OMPair(V_na,V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_OSays__unique__NB_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_S_H,c_Message_Omsg_OMPair(V_X_H,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA_H),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(V_C,V_S,c_Message_Omsg_OMPair(V_X,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_nb,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| V_NA_H = V_NA ) ).
cnf(cls_Yahalom_OSays__unique__NB_1,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_S_H,c_Message_Omsg_OMPair(V_X_H,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA_H),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(V_C,V_S,c_Message_Omsg_OMPair(V_X,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_nb,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| V_A_H = V_A ) ).
cnf(cls_Yahalom_OSays__unique__NB_2,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_S_H,c_Message_Omsg_OMPair(V_X_H,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA_H),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(V_C,V_S,c_Message_Omsg_OMPair(V_X,c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NA),V_nb))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_nb,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| V_B_H = V_B ) ).
cnf(cls_Yahalom_OSpy__not__see__encrypted__key_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Message_Omsg_OKey(V_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_B,c_Event_Obad,tc_Message_Oagent)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(V_na,c_Message_Omsg_OMPair(V_nb,c_Message_Omsg_OKey(V_K)))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_Ono__nonce__YM1__YM2_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OMPair(V_na,c_Message_Omsg_ONonce(V_NB)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(V_NB),V_nb_H))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_NB),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_Osingle__Nonce__secrecy_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_KAB),c_Message_Omsg_OMPair(V_na,c_Message_Omsg_ONonce(V_NB_H))))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Message_Omsg_ONonce(V_NB),c_Message_Oanalz(c_insert(c_Message_Omsg_OKey(V_KAB),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg)),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_NB),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| V_NB = V_NB_H
| V_KAB = c_Public_OshrK(v_sko__2VY(V_KAB)) ) ).
cnf(cls_Yahalom_Osingle__Nonce__secrecy_1,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_KAB),c_Message_Omsg_OMPair(V_na,c_Message_Omsg_ONonce(V_NB_H))))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Message_Omsg_ONonce(V_NB),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_NB),c_Message_Oanalz(c_insert(c_Message_Omsg_OKey(V_KAB),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg)),tc_Message_Omsg)
| V_NB = V_NB_H
| V_KAB = c_Public_OshrK(v_sko__2VY(V_KAB)) ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_A = V_A_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_1,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_B = V_B_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_2,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_na = V_na_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_3,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_nb = V_nb_H ) ).
%------------------------------------------------------------------------------
./SWV006-0.ax
%------------------------------------------------------------------------------
% File : SWV006-0 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for public
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Public.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 79 ( 31 unt; 6 nHn; 75 RR)
% Number of literals : 136 ( 72 equ; 77 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 24 ( 24 usr; 6 con; 0-3 aty)
% Number of variables : 229 ( 119 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OServer_A_58_Abad_A_61_61_62_AR_0,axiom,
~ c_in(c_Message_Oagent_OServer,c_Event_Obad,tc_Message_Oagent) ).
cnf(cls_Event_OSpy_A_58_Abad_0,axiom,
c_in(c_Message_Oagent_OSpy,c_Event_Obad,tc_Message_Oagent) ).
cnf(cls_Event_Oc_A_58_Aparts_A_Iknows_ASpy_Aevs1_J_A_61_61_62_Ac_A_58_Aused_Aevs1_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_c,c_Event_Oused(V_evs),tc_Message_Omsg) ) ).
cnf(cls_Event_Oevent_Odistinct__1__iff1_0,axiom,
c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__2__iff1_0,axiom,
c_Event_Oevent_OGets(V_agent_H,V_msg_H) != c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) ).
cnf(cls_Event_Oevent_Odistinct__3__iff1_0,axiom,
c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__4__iff1_0,axiom,
c_Event_Oevent_ONotes(V_agent_H,V_msg_H) != c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) ).
cnf(cls_Event_Oevent_Odistinct__5__iff1_0,axiom,
c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H) ).
cnf(cls_Event_Oevent_Odistinct__6__iff1_0,axiom,
c_Event_Oevent_ONotes(V_agent_H,V_msg_H) != c_Event_Oevent_OGets(V_agent,V_msg) ).
cnf(cls_Event_Oevent_Oinject__1__iff1_0,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_agent1 = V_agent1_H ) ).
cnf(cls_Event_Oevent_Oinject__1__iff1_1,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_agent2 = V_agent2_H ) ).
cnf(cls_Event_Oevent_Oinject__1__iff1_2,axiom,
( c_Event_Oevent_OSays(V_agent1,V_agent2,V_msg) != c_Event_Oevent_OSays(V_agent1_H,V_agent2_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Event_Oevent_Oinject__2__iff1_0,axiom,
( c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H)
| V_agent = V_agent_H ) ).
cnf(cls_Event_Oevent_Oinject__2__iff1_1,axiom,
( c_Event_Oevent_OGets(V_agent,V_msg) != c_Event_Oevent_OGets(V_agent_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Event_Oevent_Oinject__3__iff1_0,axiom,
( c_Event_Oevent_ONotes(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H)
| V_agent = V_agent_H ) ).
cnf(cls_Event_Oevent_Oinject__3__iff1_1,axiom,
( c_Event_Oevent_ONotes(V_agent,V_msg) != c_Event_Oevent_ONotes(V_agent_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_OCrypt__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OCrypt__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OHPair__eq__MPair__iff1_0,axiom,
( c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OMPair(V_X_H,V_Y_H)
| V_X_H = c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)) ) ).
cnf(cls_Message_OHPair__eq__MPair__iff1_1,axiom,
( c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OMPair(V_X_H,V_Y_H)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OHPair__eq__MPair__iff2_0,axiom,
c_Message_OHPair(V_X,V_x) = c_Message_Omsg_OMPair(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_x)),V_x) ).
cnf(cls_Message_OHPair__eq__iff1_0,axiom,
( c_Message_OHPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_X_H = V_X ) ).
cnf(cls_Message_OHPair__eq__iff1_1,axiom,
( c_Message_OHPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OHPair__neqs__1__iff1_0,axiom,
c_Message_Omsg_OAgent(V_A) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__2__iff1_0,axiom,
c_Message_Omsg_ONonce(V_N) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__3__iff1_0,axiom,
c_Message_Omsg_ONumber(V_N) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__4__iff1_0,axiom,
c_Message_Omsg_OKey(V_K) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__5__iff1_0,axiom,
c_Message_Omsg_OHash(V_Z) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHPair__neqs__6__iff1_0,axiom,
c_Message_Omsg_OCrypt(V_K,V_X_H) != c_Message_OHPair(V_X,V_Y) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_AAgent_AA_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OAgent(V_A) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_ACrypt_AK_AX_H_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OCrypt(V_K,V_X_H) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_AHash_AZ_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OHash(V_Z) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_AKey_AK_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_OKey(V_K) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_ANonce_AN_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_ONonce(V_N) ).
cnf(cls_Message_OHash_91X_93_AY_A_61_ANumber_AN_A_61_61_62_AR_0,axiom,
c_Message_OHPair(V_X,V_Y) != c_Message_Omsg_ONumber(V_N) ).
cnf(cls_Message_OHash__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OKey__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OKey(V_K),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__analz_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__eq__HPair__iff1_0,axiom,
( c_Message_Omsg_OMPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_X_H = c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_Y)) ) ).
cnf(cls_Message_OMPair__eq__HPair__iff1_1,axiom,
( c_Message_Omsg_OMPair(V_X_H,V_Y_H) != c_Message_OHPair(V_X,V_Y)
| V_Y_H = V_Y ) ).
cnf(cls_Message_OMPair__eq__HPair__iff2_0,axiom,
c_Message_Omsg_OMPair(c_Message_Omsg_OHash(c_Message_Omsg_OMPair(V_X,V_x)),V_x) = c_Message_OHPair(V_X,V_x) ).
cnf(cls_Message_OMPair__parts_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__parts_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz__iff1_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz__iff1_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_OMPair__synth__analz__iff2_0,axiom,
( ~ c_in(V_Y,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg) ) ).
cnf(cls_Message_ONonce__synth_0,axiom,
( ~ c_in(c_Message_Omsg_ONonce(V_n),c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_ONonce(V_n),V_H,tc_Message_Omsg) ) ).
cnf(cls_Message_Oagent_Odistinct__1__iff1_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OFriend(V_nat_H) ).
cnf(cls_Message_Oagent_Odistinct__2__iff1_0,axiom,
c_Message_Oagent_OFriend(V_nat_H) != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__3__iff1_0,axiom,
c_Message_Oagent_OServer != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__4__iff1_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OServer ).
cnf(cls_Message_Oagent_Odistinct__5__iff1_0,axiom,
c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OSpy ).
cnf(cls_Message_Oagent_Odistinct__6__iff1_0,axiom,
c_Message_Oagent_OSpy != c_Message_Oagent_OFriend(V_nat) ).
cnf(cls_Message_Oagent_Oinject__iff1_0,axiom,
( c_Message_Oagent_OFriend(V_nat) != c_Message_Oagent_OFriend(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Oanalz_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__analzD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oanalz(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oin__parts__UnE_0,axiom,
( ~ c_in(V_c,c_Message_Oparts(c_union(V_G,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_G),tc_Message_Omsg) ) ).
cnf(cls_Message_Omsg_Oinject__1__iff1_0,axiom,
( c_Message_Omsg_OAgent(V_agent) != c_Message_Omsg_OAgent(V_agent_H)
| V_agent = V_agent_H ) ).
cnf(cls_Message_Omsg_Oinject__2__iff1_0,axiom,
( c_Message_Omsg_ONumber(V_nat) != c_Message_Omsg_ONumber(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__3__iff1_0,axiom,
( c_Message_Omsg_ONonce(V_nat) != c_Message_Omsg_ONonce(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__4__iff1_0,axiom,
( c_Message_Omsg_OKey(V_nat) != c_Message_Omsg_OKey(V_nat_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__5__iff1_0,axiom,
( c_Message_Omsg_OHash(V_msg) != c_Message_Omsg_OHash(V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Omsg_Oinject__6__iff1_0,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg1 = V_msg1_H ) ).
cnf(cls_Message_Omsg_Oinject__6__iff1_1,axiom,
( c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H)
| V_msg2 = V_msg2_H ) ).
cnf(cls_Message_Omsg_Oinject__7__iff1_0,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_nat = V_nat_H ) ).
cnf(cls_Message_Omsg_Oinject__7__iff1_1,axiom,
( c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H)
| V_msg = V_msg_H ) ).
cnf(cls_Message_Oparts_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts__emptyE_0,axiom,
~ c_in(V_X,c_Message_Oparts(c_emptyset),tc_Message_Omsg) ).
cnf(cls_Message_Oparts__partsD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Oparts(c_Message_Oparts(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OAgent_0,axiom,
c_in(c_Message_Omsg_OAgent(V_agt),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Osynth_OCrypt_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(V_K),V_H,tc_Message_Omsg)
| c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OHash_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OHash(V_X),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OInj_0,axiom,
( ~ c_in(V_X,V_H,tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_OMPair_0,axiom,
( ~ c_in(V_Y,c_Message_Osynth(V_H),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg)
| c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Osynth_ONumber_0,axiom,
c_in(c_Message_Omsg_ONumber(V_n),c_Message_Osynth(V_H),tc_Message_Omsg) ).
cnf(cls_Message_Osynth__synthD__dest_0,axiom,
( ~ c_in(V_X,c_Message_Osynth(c_Message_Osynth(V_H)),tc_Message_Omsg)
| c_in(V_X,c_Message_Osynth(V_H),tc_Message_Omsg) ) ).
%------------------------------------------------------------------------------
./SWV006-1.ax
%------------------------------------------------------------------------------
% File : SWV006-1 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Otway Rees
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : OtwayRees.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 36 ( 19 unt; 0 nHn; 24 RR)
% Number of literals : 59 ( 12 equ; 32 neg)
% Maximal clause size : 4 ( 1 avg)
% Maximal term depth : 6 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 31 ( 31 usr; 10 con; 0-3 aty)
% Number of variables : 92 ( 55 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax, SWV006-0.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__analz__Spy__dest_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Message_OFake__parts__insert__in__Un__dest_0,axiom,
( ~ c_in(V_Z,c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Z,c_union(c_Message_Osynth(c_Message_Oanalz(V_H)),c_Message_Oparts(V_H),tc_Message_Omsg),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__into__parts__dest_0,axiom,
( ~ c_in(V_c,c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts_OBody__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_OtwayRees_OGets__imp__Says__dest_0,axiom,
( ~ c_in(V_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(v_sko__usf(V_B,V_X,V_evs),V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_OtwayRees_OSpy__see__shrK__D__dest_0,axiom,
( ~ c_in(V_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent) ) ).
cnf(cls_OtwayRees_Ono__nonce__OR1__OR2__dest_0,axiom,
( ~ c_in(V_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(V_NA_H,c_Message_Omsg_OMPair(V_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A_H),c_Message_Omsg_OAgent(V_A))))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(V_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OAgent(V_B)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent) ) ).
cnf(cls_Public_OMPair__used_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_OMPair__used_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_X,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_ONonce__notin__initState__iff1_0,axiom,
~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(c_Event_OinitState(V_B)),tc_Message_Omsg) ).
cnf(cls_Public_OSpy__spies__bad__privateKey_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_OSpy__spies__bad__shrK_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_Oanalz__spies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ).
cnf(cls_Public_Okeymode_Odistinct__1__iff1_0,axiom,
c_Public_Okeymode_OSignature != c_Public_Okeymode_OEncryption ).
cnf(cls_Public_Okeymode_Odistinct__2__iff1_0,axiom,
c_Public_Okeymode_OEncryption != c_Public_Okeymode_OSignature ).
cnf(cls_Public_Onot__symKeys__priK__iff1_0,axiom,
~ c_in(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_Onot__symKeys__pubK__iff1_0,axiom,
~ c_in(c_Public_OpublicKey(V_b,V_A),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OpriK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OpriK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_C)) ).
cnf(cls_Public_OprivateKey_Ab_AA_A_61_ApublicKey_Ac_AA_H_A_61_61_62_AR_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) != c_Public_OpublicKey(V_c,V_A_H) ).
cnf(cls_Public_OprivateKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpubK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Public_OpublicKey(V_b,V_C) ).
cnf(cls_Public_OpublicKey__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_OinitState(V_B),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__inject__iff1_0,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_b = V_c ) ).
cnf(cls_Public_OpublicKey__inject__iff1_1,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_A = V_A_H ) ).
cnf(cls_Public_OpublicKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__neq__privateKey__iff1_0,axiom,
c_Public_OpublicKey(V_c,V_A_H) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) ).
cnf(cls_Public_OshrK_AX_A_58_AsymKeys_0,axiom,
c_in(c_Public_OshrK(V_X),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OshrK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__knows_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(V_A,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__injective__iff1_0,axiom,
( c_Public_OshrK(V_x) != c_Public_OshrK(V_y)
| V_x = V_y ) ).
cnf(cls_Public_Ospies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff1_0,axiom,
( ~ c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat)
| c_in(V_K,c_Message_OsymKeys,tc_nat) ) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff2_0,axiom,
( ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat) ) ).
%------------------------------------------------------------------------------
./SWV006-2.ax
%------------------------------------------------------------------------------
% File : SWV006-2 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Otway Rees, version 2
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : OtwayRees2.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 34 ( 19 unt; 0 nHn; 22 RR)
% Number of literals : 52 ( 12 equ; 27 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 30 ( 30 usr; 10 con; 0-3 aty)
% Number of variables : 84 ( 52 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax, SWV006-0.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__analz__Spy__dest_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Message_OFake__parts__insert__in__Un__dest_0,axiom,
( ~ c_in(V_Z,c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Z,c_union(c_Message_Osynth(c_Message_Oanalz(V_H)),c_Message_Oparts(V_H),tc_Message_Omsg),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__into__parts__dest_0,axiom,
( ~ c_in(V_c,c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts_OBody__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_OtwayRees_OGets__imp__Says__dest_0,axiom,
( ~ c_in(V_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(v_sko__usf(V_B,V_X,V_evs),V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Public_OMPair__used_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_OMPair__used_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_X,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_ONonce__notin__initState__iff1_0,axiom,
~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(c_Event_OinitState(V_B)),tc_Message_Omsg) ).
cnf(cls_Public_OSpy__spies__bad__privateKey_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_OSpy__spies__bad__shrK_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_Oanalz__spies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ).
cnf(cls_Public_Okeymode_Odistinct__1__iff1_0,axiom,
c_Public_Okeymode_OSignature != c_Public_Okeymode_OEncryption ).
cnf(cls_Public_Okeymode_Odistinct__2__iff1_0,axiom,
c_Public_Okeymode_OEncryption != c_Public_Okeymode_OSignature ).
cnf(cls_Public_Onot__symKeys__priK__iff1_0,axiom,
~ c_in(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_Onot__symKeys__pubK__iff1_0,axiom,
~ c_in(c_Public_OpublicKey(V_b,V_A),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OpriK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OpriK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_C)) ).
cnf(cls_Public_OprivateKey_Ab_AA_A_61_ApublicKey_Ac_AA_H_A_61_61_62_AR_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) != c_Public_OpublicKey(V_c,V_A_H) ).
cnf(cls_Public_OprivateKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpubK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Public_OpublicKey(V_b,V_C) ).
cnf(cls_Public_OpublicKey__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_OinitState(V_B),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__inject__iff1_0,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_b = V_c ) ).
cnf(cls_Public_OpublicKey__inject__iff1_1,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_A = V_A_H ) ).
cnf(cls_Public_OpublicKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__neq__privateKey__iff1_0,axiom,
c_Public_OpublicKey(V_c,V_A_H) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) ).
cnf(cls_Public_OshrK_AX_A_58_AsymKeys_0,axiom,
c_in(c_Public_OshrK(V_X),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OshrK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__knows_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(V_A,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__injective__iff1_0,axiom,
( c_Public_OshrK(V_x) != c_Public_OshrK(V_y)
| V_x = V_y ) ).
cnf(cls_Public_Ospies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff1_0,axiom,
( ~ c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat)
| c_in(V_K,c_Message_OsymKeys,tc_nat) ) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff2_0,axiom,
( ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat) ) ).
%------------------------------------------------------------------------------
./SWV006-3.ax
%------------------------------------------------------------------------------
% File : SWV006-3 : TPTP v8.2.0. Released v3.2.0.
% Domain : Software Verification
% Axioms : Cryptographic protocol axioms for Yahalom, version B
% Version : [Pau06] axioms.
% English :
% Refs : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source : [Pau06]
% Names : Yahalom__B.ax [Pau06]
% Status : Satisfiable
% Syntax : Number of clauses : 43 ( 19 unt; 1 nHn; 31 RR)
% Number of literals : 83 ( 16 equ; 48 neg)
% Maximal clause size : 4 ( 1 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-3 aty)
% Number of functors : 32 ( 32 usr; 11 con; 0-3 aty)
% Number of variables : 150 ( 81 sgn)
% SPC :
% Comments : Requires MSC001-0.ax, MSC001-2.ax, SWV006-0.ax
%------------------------------------------------------------------------------
cnf(cls_Event_OSays__imp__analz__Spy__dest_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Event_OSays__imp__spies_0,axiom,
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Message_OFake__parts__insert__in__Un__dest_0,axiom,
( ~ c_in(V_Z,c_Message_Oparts(c_insert(V_X,V_H,tc_Message_Omsg)),tc_Message_Omsg)
| ~ c_in(V_X,c_Message_Osynth(c_Message_Oanalz(V_H)),tc_Message_Omsg)
| c_in(V_Z,c_union(c_Message_Osynth(c_Message_Oanalz(V_H)),c_Message_Oparts(V_H),tc_Message_Omsg),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz_ODecrypt__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oanalz(V_H),tc_Message_Omsg)
| ~ c_in(c_Message_Omsg_OKey(c_Message_OinvKey(V_K)),c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oanalz__into__parts__dest_0,axiom,
( ~ c_in(V_c,c_Message_Oanalz(V_H),tc_Message_Omsg)
| c_in(V_c,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Message_Oparts_OBody__dest_0,axiom,
( ~ c_in(c_Message_Omsg_OCrypt(V_K,V_X),c_Message_Oparts(V_H),tc_Message_Omsg)
| c_in(V_X,c_Message_Oparts(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_OCrypt__Spy__analz__bad_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),V_X),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Public_OMPair__used_0,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_Y,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_OMPair__used_1,axiom,
( ~ c_in(c_Message_Omsg_OMPair(V_X,V_Y),c_Event_Oused(V_H),tc_Message_Omsg)
| c_in(V_X,c_Event_Oused(V_H),tc_Message_Omsg) ) ).
cnf(cls_Public_ONonce__notin__initState__iff1_0,axiom,
~ c_in(c_Message_Omsg_ONonce(V_N),c_Message_Oparts(c_Event_OinitState(V_B)),tc_Message_Omsg) ).
cnf(cls_Public_OSpy__spies__bad__privateKey_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_OSpy__spies__bad__shrK_0,axiom,
( ~ c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ) ).
cnf(cls_Public_Oanalz__spies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ).
cnf(cls_Public_Okeymode_Odistinct__1__iff1_0,axiom,
c_Public_Okeymode_OSignature != c_Public_Okeymode_OEncryption ).
cnf(cls_Public_Okeymode_Odistinct__2__iff1_0,axiom,
c_Public_Okeymode_OEncryption != c_Public_Okeymode_OSignature ).
cnf(cls_Public_Onot__symKeys__priK__iff1_0,axiom,
~ c_in(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_Onot__symKeys__pubK__iff1_0,axiom,
~ c_in(c_Public_OpublicKey(V_b,V_A),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OpriK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OpriK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_C)) ).
cnf(cls_Public_OprivateKey_Ab_AA_A_61_ApublicKey_Ac_AA_H_A_61_61_62_AR_0,axiom,
c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) != c_Public_OpublicKey(V_c,V_A_H) ).
cnf(cls_Public_OprivateKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A))),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpubK__neq__shrK__iff1_0,axiom,
c_Public_OshrK(V_A) != c_Public_OpublicKey(V_b,V_C) ).
cnf(cls_Public_OpublicKey__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_OinitState(V_B),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__inject__iff1_0,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_b = V_c ) ).
cnf(cls_Public_OpublicKey__inject__iff1_1,axiom,
( c_Public_OpublicKey(V_b,V_A) != c_Public_OpublicKey(V_c,V_A_H)
| V_A = V_A_H ) ).
cnf(cls_Public_OpublicKey__into__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OpublicKey__neq__privateKey__iff1_0,axiom,
c_Public_OpublicKey(V_c,V_A_H) != c_Message_OinvKey(c_Public_OpublicKey(V_b,V_A)) ).
cnf(cls_Public_OshrK_AX_A_58_AsymKeys_0,axiom,
c_in(c_Public_OshrK(V_X),c_Message_OsymKeys,tc_nat) ).
cnf(cls_Public_OshrK__in__initState_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_OinitState(V_A),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__knows_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oknows(V_A,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__in__used_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Event_Oused(V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OshrK__injective__iff1_0,axiom,
( c_Public_OshrK(V_x) != c_Public_OshrK(V_y)
| V_x = V_y ) ).
cnf(cls_Public_Ospies__pubK_0,axiom,
c_in(c_Message_Omsg_OKey(c_Public_OpublicKey(V_b,V_A)),c_Event_Oknows(c_Message_Oagent_OSpy,V_evs),tc_Message_Omsg) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff1_0,axiom,
( ~ c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat)
| c_in(V_K,c_Message_OsymKeys,tc_nat) ) ).
cnf(cls_Public_OsymKeys__invKey__iff__iff2_0,axiom,
( ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
| c_in(c_Message_OinvKey(V_K),c_Message_OsymKeys,tc_nat) ) ).
cnf(cls_Yahalom_OA__trusts__YM3_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_OGets__imp__Says_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(v_sko__wPE(V_B,V_X,V_evs),V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) ) ).
cnf(cls_Yahalom_OGets__imp__analz__Spy__dest_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ) ).
cnf(cls_Yahalom_OSpy__see__shrK__D__dest_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(c_Public_OshrK(V_A)),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent) ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_0,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_A = V_A_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_1,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_B = V_B_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_2,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_na = V_na_H ) ).
cnf(cls_Yahalom_Ounique__session__keys__dest_3,axiom,
( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A_H,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A_H),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B_H),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na_H,V_nb_H)))),V_X_H)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| V_nb = V_nb_H ) ).
%------------------------------------------------------------------------------
./SWV007+0.ax
%------------------------------------------------------------------------------
% File : SWV007+0 : TPTP v8.2.0. Released v3.3.0.
% Domain : Software Verification
% Axioms : Priority queue checker: quasi-order set with bottom element
% Version : [dNP05] axioms.
% English :
% Refs : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
% : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source : [Pis06]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 5 ( 2 unt; 0 def)
% Number of atoms : 10 ( 0 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 6 ( 1 ~; 1 |; 2 &)
% ( 1 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 4 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 2 ( 2 usr; 0 prp; 2-2 aty)
% Number of functors : 1 ( 1 usr; 1 con; 0-0 aty)
% Number of variables : 9 ( 9 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(transitivity,axiom,
! [U,V,W] :
( ( less_than(U,V)
& less_than(V,W) )
=> less_than(U,W) ) ).
fof(totality,axiom,
! [U,V] :
( less_than(U,V)
| less_than(V,U) ) ).
fof(reflexivity,axiom,
! [U] : less_than(U,U) ).
fof(stricly_smaller_definition,axiom,
! [U,V] :
( strictly_less_than(U,V)
<=> ( less_than(U,V)
& ~ less_than(V,U) ) ) ).
fof(bottom_smallest,axiom,
! [U] : less_than(bottom,U) ).
%------------------------------------------------------------------------------
./SWV007+1.ax
%------------------------------------------------------------------------------
% File : SWV007+1 : TPTP v8.2.0. Released v3.3.0.
% Domain : Software Verification
% Axioms : Priority queue checker: priority queues
% Version : [dNP05] axioms.
% English : Priority queues are inductively defined.
% Refs : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
% : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source : [Pis06]
% Names :
% Status : Satisfiable
% Rating : <Don't worry about this one - we'll do it automatically>
% Syntax : Number of formulae : 12 ( 5 unt; 0 def)
% Number of atoms : 26 ( 9 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 17 ( 3 ~; 1 |; 5 &)
% ( 2 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-2 aty)
% Number of functors : 7 ( 7 usr; 1 con; 0-2 aty)
% Number of variables : 25 ( 25 !; 0 ?)
% SPC :
% Comments : Requires SWV007+0
%------------------------------------------------------------------------------
fof(ax6,axiom,
~ isnonempty_pq(create_pq) ).
fof(ax7,axiom,
! [U,V] : isnonempty_pq(insert_pq(U,V)) ).
fof(ax8,axiom,
! [U] : ~ contains_pq(create_pq,U) ).
fof(ax9,axiom,
! [U,V,W] :
( contains_pq(insert_pq(U,V),W)
<=> ( contains_pq(U,W)
| V = W ) ) ).
fof(ax10,axiom,
! [U,V] :
( issmallestelement_pq(U,V)
<=> ! [W] :
( contains_pq(U,W)
=> less_than(V,W) ) ) ).
fof(ax11,axiom,
! [U,V] : remove_pq(insert_pq(U,V),V) = U ).
fof(ax12,axiom,
! [U,V,W] :
( ( contains_pq(U,W)
& V != W )
=> remove_pq(insert_pq(U,V),W) = insert_pq(remove_pq(U,W),V) ) ).
fof(ax13,axiom,
! [U,V] :
( ( contains_pq(U,V)
& issmallestelement_pq(U,V) )
=> findmin_pq_eff(U,V) = U ) ).
fof(ax14,axiom,
! [U,V] :
( ( contains_pq(U,V)
& issmallestelement_pq(U,V) )
=> findmin_pq_res(U,V) = V ) ).
fof(ax15,axiom,
! [U,V] :
( ( contains_pq(U,V)
& issmallestelement_pq(U,V) )
=> removemin_pq_eff(U,V) = remove_pq(U,V) ) ).
fof(ax16,axiom,
! [U,V] :
( ( contains_pq(U,V)
& issmallestelement_pq(U,V) )
=> removemin_pq_res(U,V) = V ) ).
fof(ax17,axiom,
! [U,V,W] : insert_pq(insert_pq(U,V),W) = insert_pq(insert_pq(U,W),V) ).
%------------------------------------------------------------------------------
./SWV007+2.ax
%------------------------------------------------------------------------------
% File : SWV007+2 : TPTP v8.2.0. Released v3.3.0.
% Domain : Software Verification
% Axioms : Priority queue checker: system of lower bounds
% Version : [dNP05] axioms.
% English :
% Refs : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
% : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source : [Pis06]
% Names :
% Status : Satisfiable
% Rating : <Don't worry about this one - we'll do it automatically>
% Syntax : Number of formulae : 13 ( 7 unt; 0 def)
% Number of atoms : 24 ( 12 equ)
% Maximal formula atoms : 4 ( 1 avg)
% Number of connectives : 16 ( 5 ~; 2 |; 3 &)
% ( 2 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 5 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 1-3 aty)
% Number of functors : 6 ( 6 usr; 1 con; 0-2 aty)
% Number of variables : 38 ( 38 !; 0 ?)
% SPC :
% Comments : Requires SWV007+0
%------------------------------------------------------------------------------
fof(ax18,axiom,
~ isnonempty_slb(create_slb) ).
fof(ax19,axiom,
! [U,V,W] : isnonempty_slb(insert_slb(U,pair(V,W))) ).
fof(ax20,axiom,
! [U] : ~ contains_slb(create_slb,U) ).
fof(ax21,axiom,
! [U,V,W,X] :
( contains_slb(insert_slb(U,pair(V,X)),W)
<=> ( contains_slb(U,W)
| V = W ) ) ).
fof(ax22,axiom,
! [U,V] : ~ pair_in_list(create_slb,U,V) ).
fof(ax23,axiom,
! [U,V,W,X,Y] :
( pair_in_list(insert_slb(U,pair(V,X)),W,Y)
<=> ( pair_in_list(U,W,Y)
| ( V = W
& X = Y ) ) ) ).
fof(ax24,axiom,
! [U,V,W] : remove_slb(insert_slb(U,pair(V,W)),V) = U ).
fof(ax25,axiom,
! [U,V,W,X] :
( ( V != W
& contains_slb(U,W) )
=> remove_slb(insert_slb(U,pair(V,X)),W) = insert_slb(remove_slb(U,W),pair(V,X)) ) ).
fof(ax26,axiom,
! [U,V,W] : lookup_slb(insert_slb(U,pair(V,W)),V) = W ).
fof(ax27,axiom,
! [U,V,W,X] :
( ( V != W
& contains_slb(U,W) )
=> lookup_slb(insert_slb(U,pair(V,X)),W) = lookup_slb(U,W) ) ).
fof(ax28,axiom,
! [U] : update_slb(create_slb,U) = create_slb ).
fof(ax29,axiom,
! [U,V,W,X] :
( strictly_less_than(X,W)
=> update_slb(insert_slb(U,pair(V,X)),W) = insert_slb(update_slb(U,W),pair(V,W)) ) ).
fof(ax30,axiom,
! [U,V,W,X] :
( less_than(W,X)
=> update_slb(insert_slb(U,pair(V,X)),W) = insert_slb(update_slb(U,W),pair(V,X)) ) ).
%------------------------------------------------------------------------------
./SWV007+3.ax
%------------------------------------------------------------------------------
% File : SWV007+3 : TPTP v8.2.0. Released v3.3.0.
% Domain : Software Verification
% Axioms : Priority queue checker: checked priority queues
% Version : [dNP05] axioms.
% English : This axiom set fully describes checked priority queues. Checked
% priority queues are defined as triples of a "priority queue
% pretender", a system of lower bounds and Boolean value that keep
% track of errors.
% Refs : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
% : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source : [Pis06]
% Names :
% Status : Satisfiable
% Rating : <Don't worry about this one - we'll do it automatically>
% Syntax : Number of formulae : 23 ( 7 unt; 0 def)
% Number of atoms : 48 ( 17 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 32 ( 7 ~; 0 |; 7 &)
% ( 4 <=>; 14 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 5 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 9 ( 7 usr; 1 prp; 0-2 aty)
% Number of functors : 18 ( 18 usr; 3 con; 0-3 aty)
% Number of variables : 70 ( 70 !; 0 ?)
% SPC :
% Comments : Requires SWV007+0 SWV007+2
%------------------------------------------------------------------------------
fof(ax31,axiom,
! [U] : succ_cpq(U,U) ).
fof(ax32,axiom,
! [U,V,W] :
( succ_cpq(U,V)
=> succ_cpq(U,insert_cpq(V,W)) ) ).
fof(ax33,axiom,
! [U,V,W] :
( succ_cpq(U,V)
=> succ_cpq(U,remove_cpq(V,W)) ) ).
fof(ax34,axiom,
! [U,V] :
( succ_cpq(U,V)
=> succ_cpq(U,findmin_cpq_eff(V)) ) ).
fof(ax35,axiom,
! [U,V] :
( succ_cpq(U,V)
=> succ_cpq(U,removemin_cpq_eff(V)) ) ).
fof(ax36,axiom,
! [U,V] : check_cpq(triple(U,create_slb,V)) ).
fof(ax37,axiom,
! [U,V,W,X,Y] :
( less_than(Y,X)
=> ( check_cpq(triple(U,insert_slb(V,pair(X,Y)),W))
<=> check_cpq(triple(U,V,W)) ) ) ).
fof(ax38,axiom,
! [U,V,W,X,Y] :
( strictly_less_than(X,Y)
=> ( check_cpq(triple(U,insert_slb(V,pair(X,Y)),W))
<=> $false ) ) ).
fof(ax39,axiom,
! [U,V,W,X] :
( contains_cpq(triple(U,V,W),X)
<=> contains_slb(V,X) ) ).
fof(ax40,axiom,
! [U,V] :
( ok(triple(U,V,bad))
<=> $false ) ).
fof(ax41,axiom,
! [U,V,W] :
( ~ ok(triple(U,V,W))
=> W = bad ) ).
fof(ax42,axiom,
! [U,V,W,X] : insert_cpq(triple(U,V,W),X) = triple(insert_pqp(U,X),insert_slb(V,pair(X,bottom)),W) ).
fof(ax43,axiom,
! [U,V,W,X] :
( ~ contains_slb(V,X)
=> remove_cpq(triple(U,V,W),X) = triple(U,V,bad) ) ).
fof(ax44,axiom,
! [U,V,W,X] :
( ( contains_slb(V,X)
& less_than(lookup_slb(V,X),X) )
=> remove_cpq(triple(U,V,W),X) = triple(remove_pqp(U,X),remove_slb(V,X),W) ) ).
fof(ax45,axiom,
! [U,V,W,X] :
( ( contains_slb(V,X)
& strictly_less_than(X,lookup_slb(V,X)) )
=> remove_cpq(triple(U,V,W),X) = triple(remove_pqp(U,X),remove_slb(V,X),bad) ) ).
fof(ax46,axiom,
! [U,V] : findmin_cpq_eff(triple(U,create_slb,V)) = triple(U,create_slb,bad) ).
fof(ax47,axiom,
! [U,V,W,X] :
( ( V != create_slb
& ~ contains_slb(V,findmin_pqp_res(U)) )
=> findmin_cpq_eff(triple(U,V,W)) = triple(U,update_slb(V,findmin_pqp_res(U)),bad) ) ).
fof(ax48,axiom,
! [U,V,W,X] :
( ( V != create_slb
& contains_slb(V,findmin_pqp_res(U))
& strictly_less_than(findmin_pqp_res(U),lookup_slb(V,findmin_pqp_res(U))) )
=> findmin_cpq_eff(triple(U,V,W)) = triple(U,update_slb(V,findmin_pqp_res(U)),bad) ) ).
fof(ax49,axiom,
! [U,V,W,X] :
( ( V != create_slb
& contains_slb(V,findmin_pqp_res(U))
& less_than(lookup_slb(V,findmin_pqp_res(U)),findmin_pqp_res(U)) )
=> findmin_cpq_eff(triple(U,V,W)) = triple(U,update_slb(V,findmin_pqp_res(U)),W) ) ).
fof(ax50,axiom,
! [U,V] : findmin_cpq_res(triple(U,create_slb,V)) = bottom ).
fof(ax51,axiom,
! [U,V,W,X] :
( V != create_slb
=> findmin_cpq_res(triple(U,V,W)) = findmin_pqp_res(U) ) ).
fof(ax52,axiom,
! [U] : removemin_cpq_eff(U) = remove_cpq(findmin_cpq_eff(U),findmin_cpq_res(U)) ).
fof(ax53,axiom,
! [U] : removemin_cpq_res(U) = findmin_cpq_res(U) ).
%------------------------------------------------------------------------------
./SWV007+4.ax
%------------------------------------------------------------------------------
% File : SWV007+4 : TPTP v8.2.0. Released v3.3.0.
% Domain : Software Verification
% Axioms : Priority queue checker: implementation function, Pi, Pi#
% Version : [dNP05] axioms.
% English :
% Refs : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
% : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source : [Pis06]
% Names :
% Status : Satisfiable
% Rating : <Don't worry about this one - we'll do it automatically>
% Syntax : Number of formulae : 9 ( 2 unt; 0 def)
% Number of atoms : 20 ( 2 equ)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 11 ( 0 ~; 0 |; 4 &)
% ( 7 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 6 ( 5 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 13 ( 12 usr; 0 prp; 1-2 aty)
% Number of functors : 7 ( 7 usr; 2 con; 0-3 aty)
% Number of variables : 21 ( 18 !; 3 ?)
% SPC :
% Comments : Requires SWV007+0 SWV007+1 SWV007+2 SWV007+3
%------------------------------------------------------------------------------
fof(ax54,axiom,
! [U,V] : i(triple(U,create_slb,V)) = create_pq ).
fof(ax55,axiom,
! [U,V,W,X,Y] : i(triple(U,insert_slb(V,pair(X,Y)),W)) = insert_pq(i(triple(U,V,W)),X) ).
%----All below here are definitions
fof(ax56,axiom,
! [U,V] :
( pi_sharp_remove(U,V)
<=> contains_pq(U,V) ) ).
fof(ax57,axiom,
! [U,V] :
( pi_remove(U,V)
<=> pi_sharp_remove(i(U),V) ) ).
fof(ax58,axiom,
! [U,V] :
( pi_sharp_find_min(U,V)
<=> ( contains_pq(U,V)
& issmallestelement_pq(U,V) ) ) ).
fof(ax59,axiom,
! [U] :
( pi_find_min(U)
<=> ? [V] : pi_sharp_find_min(i(U),V) ) ).
fof(ax60,axiom,
! [U,V] :
( pi_sharp_removemin(U,V)
<=> ( contains_pq(U,V)
& issmallestelement_pq(U,V) ) ) ).
fof(ax61,axiom,
! [U] :
( pi_removemin(U)
<=> ? [V] : pi_sharp_find_min(i(U),V) ) ).
fof(ax62,axiom,
! [U] :
( phi(U)
<=> ? [V] :
( succ_cpq(U,V)
& ok(V)
& check_cpq(V) ) ) ).
%------------------------------------------------------------------------------
./SWV008^0.ax
%------------------------------------------------------------------------------
% File : SWV008^0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Software Verification (Security)
% Axioms : ICL logic based upon modal logic based upon simple type theory
% Version : [Ben08] axioms.
% English :
% Refs : [GA08] Garg & Abadi (2008), A Modal Deconstruction of Access
% : [Ben08] Benzmueller (2008), Automating Access Control Logics i
% : [BP09] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 19 ( 9 unt; 10 typ; 9 def)
% Number of atoms : 31 ( 9 equ; 0 cnn)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 15 ( 0 ~; 0 |; 0 &; 15 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 15 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 43 ( 43 >; 0 *; 0 +; 0 <<)
% Number of symbols : 18 ( 17 usr; 7 con; 0-3 aty)
% Number of variables : 11 ( 11 ^ 0 !; 0 ?; 11 :)
% SPC :
% Comments : Requires LCL008^0.ax
% : THF0 syntax
%------------------------------------------------------------------------------
%----The encoding of ICL logic employs only one accessibility relation which
%----introduce here as a constant 'rel'; we don't need multimodal logic.
thf(rel_type,type,
rel: $i > $i > $o ).
%----ICL logic distiguishes between atoms and principals; for this we introduce
%----a predicate 'icl_atom' ...
thf(icl_atom_type,type,
icl_atom: ( $i > $o ) > $i > $o ).
thf(icl_atom,definition,
( icl_atom
= ( ^ [P: $i > $o] : ( mbox @ rel @ P ) ) ) ).
%---- ... and also a predicate 'icl_princ'
thf(icl_princ_type,type,
icl_princ: ( $i > $o ) > $i > $o ).
thf(icl_princ,definition,
( icl_princ
= ( ^ [P: $i > $o] : P ) ) ).
%----ICL and connective
thf(icl_and_type,type,
icl_and: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(icl_and,definition,
( icl_and
= ( ^ [A: $i > $o,B: $i > $o] : ( mand @ A @ B ) ) ) ).
%----ICL or connective
thf(icl_or_type,type,
icl_or: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(icl_or,definition,
( icl_or
= ( ^ [A: $i > $o,B: $i > $o] : ( mor @ A @ B ) ) ) ).
%----ICL implication connective
thf(icl_impl_type,type,
icl_impl: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(icl_impl,definition,
( icl_impl
= ( ^ [A: $i > $o,B: $i > $o] : ( mbox @ rel @ ( mimpl @ A @ B ) ) ) ) ).
%----ICL true connective
thf(icl_true_type,type,
icl_true: $i > $o ).
thf(icl_true,definition,
icl_true = mtrue ).
%----ICL false connective
thf(icl_false_type,type,
icl_false: $i > $o ).
thf(icl_false,definition,
icl_false = mfalse ).
%----ICL says connective
thf(icl_says_type,type,
icl_says: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(icl_says,definition,
( icl_says
= ( ^ [A: $i > $o,S: $i > $o] : ( mbox @ rel @ ( mor @ A @ S ) ) ) ) ).
%----An ICL formula is K-valid if its translation into modal logic is valid
thf(iclval_decl_type,type,
iclval: ( $i > $o ) > $o ).
thf(icl_s4_valid,definition,
( iclval
= ( ^ [X: $i > $o] : ( mvalid @ X ) ) ) ).
%------------------------------------------------------------------------------
./SWV008^1.ax
%------------------------------------------------------------------------------
% File : SWV008^1 : TPTP v8.2.0. Released v3.6.0.
% Domain : Software Verification (Security)
% Axioms : ICL notions of validity wrt S4
% Version : [Ben08] axioms.
% English :
% Refs : [GA08] Garg & Abadi (2008), A Modal Deconstruction of Access
% : [Ben08] Benzmueller (2008), Automating Access Control Logics i
% : [BP09] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 0 unt; 0 typ; 0 def)
% Number of atoms : 12 ( 0 equ; 0 cnn)
% Maximal formula atoms : 8 ( 6 avg)
% Number of connectives : 14 ( 0 ~; 0 |; 0 &; 14 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 7 avg; 14 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 2 ( 2 >; 0 *; 0 +; 0 <<)
% Number of symbols : 4 ( 4 usr; 4 con; 0-0 aty)
% Number of variables : 2 ( 0 ^ 2 !; 0 ?; 2 :)
% SPC :
% Comments : Requires LCL008^0.ax SWV008^0.ax
% : THF0 syntax
%------------------------------------------------------------------------------
%----We add the reflexivity and the transitivity axiom to obtain S4.
thf(refl_axiom,axiom,
! [A: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ rel @ A ) @ A ) ) ).
thf(trans_axiom,axiom,
! [B: $i > $o] : ( mvalid @ ( mimpl @ ( mbox @ rel @ B ) @ ( mbox @ rel @ ( mbox @ rel @ B ) ) ) ) ).
%------------------------------------------------------------------------------
./SWV008^2.ax
%------------------------------------------------------------------------------
% File : SWV008^2 : TPTP v8.2.0. Released v3.6.0.
% Domain : Software Verification (Security)
% Axioms : ICL^=> logic based upon modal logic
% Version : [Ben08] axioms.
% English :
% Refs : [GA08] Garg & Abadi (2008), A Modal Deconstruction of Access
% : [Ben08] Benzmueller (2008), Automating Access Control Logics i
% : [BP09] Benzmueller & Paulson (2009), Exploring Properties of
% Source : [Ben08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 1 unt; 1 typ; 1 def)
% Number of atoms : 5 ( 1 equ; 0 cnn)
% Maximal formula atoms : 1 ( 2 avg)
% Number of connectives : 4 ( 0 ~; 0 |; 0 &; 4 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg; 4 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 7 ( 7 >; 0 *; 0 +; 0 <<)
% Number of symbols : 5 ( 4 usr; 3 con; 0-3 aty)
% Number of variables : 2 ( 2 ^ 0 !; 0 ?; 2 :)
% SPC :
% Comments : Requires LCL008^0.ax SWV008^0.ax
% : THF0 syntax
%------------------------------------------------------------------------------
%----The new connective 'speaks for'
thf(icl_impl_princ_type,type,
icl_impl_princ: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(icl_impl_princ,definition,
( icl_impl_princ
= ( ^ [A: $i > $o,B: $i > $o] : ( mbox @ rel @ ( mimpl @ A @ B ) ) ) ) ).
%------------------------------------------------------------------------------
./SWV009+0.ax
%------------------------------------------------------------------------------
% File : SWV009+0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Software Verification
% Axioms : General axioms for access to classified information
% Version : [Gar09] axioms.
% English :
% Refs : [Gar09] Garg (2006), Email to G. Sutcliffe
% Source : [Gar09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 41 ( 12 unt; 0 def)
% Number of atoms : 129 ( 0 equ)
% Maximal formula atoms : 11 ( 3 avg)
% Number of connectives : 88 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 88 =>; 0 <=; 0 <~>)
% Maximal formula depth : 16 ( 6 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 55 ( 55 usr; 0 prp; 1-6 aty)
% Number of functors : 14 ( 14 usr; 13 con; 0-2 aty)
% Number of variables : 129 ( 129 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(ax0,axiom,
! [K] : loca_level_direct_below(K,unclassified,sbu) ).
fof(ax1,axiom,
! [K] : loca_level_direct_below(K,sbu,confidential) ).
fof(ax2,axiom,
! [K] : loca_level_direct_below(K,confidential,secret) ).
fof(ax3,axiom,
! [K] : loca_level_direct_below(K,secret,topsecret) ).
fof(ax4,axiom,
! [K,L] : loca_level_below(K,L,L) ).
fof(ax5,axiom,
! [K,L,L1,L11] :
( loca_level_direct_below(K,L1,L11)
=> ( loca_level_below(K,L,L1)
=> loca_level_below(K,L,L11) ) ) ).
fof(ax6,axiom,
! [C,SSO] :
( system_compartment_has_sso(system,C,SSO)
=> admin_compartment_has_sso(admin,C,SSO) ) ).
fof(ax7,axiom,
! [OCA,C,SSO,SCG] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_has_scg(OCA,C,SCG)
=> ( admin_compartment_has_sso(admin,C,SSO)
=> ( sso_compartment_has_scg(SSO,C,SCG)
=> admin_compartment_has_scg(admin,C,SCG) ) ) ) ) ).
fof(ax8,axiom,
! [F,CL] :
( system_file_needs_compartments(system,F,CL)
=> ( admin_file_has_compartments_h(admin,F,CL,CL)
=> admin_file_has_compartments(admin,F,CL) ) ) ).
fof(ax9,axiom,
! [F,CL] : admin_file_has_compartments_h(admin,F,CL,nil) ).
fof(ax10,axiom,
! [F,CL,C1,CL1,SSO] :
( admin_compartment_has_sso(admin,C1,SSO)
=> ( sso_file_has_compartments(SSO,F,CL)
=> ( admin_file_has_compartments_h(admin,F,CL,CL1)
=> admin_file_has_compartments_h(admin,F,CL,cons(C1,CL1)) ) ) ) ).
fof(ax11,axiom,
! [F,L,CL] :
( system_file_needs_level(system,F,L)
=> ( admin_file_has_compartments(admin,F,CL)
=> ( admin_file_has_level_h(admin,F,L,CL)
=> admin_file_has_level(admin,F,L) ) ) ) ).
fof(ax12,axiom,
! [F,L] : admin_file_has_level_h(admin,F,L,nil) ).
fof(ax13,axiom,
! [F,L,C,CL,SSO,SCG] :
( admin_compartment_has_sso(admin,C,SSO)
=> ( admin_compartment_has_scg(admin,C,SCG)
=> ( sso_file_has_level(SSO,F,L,SCG)
=> ( admin_file_has_level_h(admin,F,L,CL)
=> admin_file_has_level_h(admin,F,L,cons(C,CL)) ) ) ) ) ).
fof(ax14,axiom,
! [F,U,CL] :
( system_file_needs_citizenship(system,F,U)
=> ( admin_file_has_compartments(admin,F,CL)
=> ( admin_file_has_citizenship_h(admin,F,U,CL)
=> admin_file_has_citizenship(admin,F,U) ) ) ) ).
fof(ax15,axiom,
! [F,U] : admin_file_has_citizenship_h(admin,F,U,nil) ).
fof(ax16,axiom,
! [F,U,C,CL,SSO,SCG] :
( admin_compartment_has_sso(admin,C,SSO)
=> ( admin_compartment_has_scg(admin,C,SCG)
=> ( sso_file_has_citizenship(SSO,F,U,SCG)
=> ( admin_file_has_citizenship_h(admin,F,U,CL)
=> admin_file_has_citizenship_h(admin,F,U,cons(C,CL)) ) ) ) ) ).
fof(ax17,axiom,
! [K,PA] :
( system_indi_is_polygraph_admin(system,PA)
=> ( polygraph_admin_indi_has_polygraph(PA,K)
=> admin_indi_has_polygraph(admin,K) ) ) ).
fof(ax18,axiom,
! [K,CA] :
( system_indi_is_credit_admin(system,CA)
=> ( credit_admin_indi_has_credit(CA,K)
=> admin_indi_has_credit(admin,K) ) ) ).
fof(ax19,axiom,
! [K] : admin_indi_has_background(admin,K,unclassified) ).
fof(ax20,axiom,
! [K,L,BA,L1] :
( system_indi_is_background_admin(system,BA)
=> ( background_admin_indi_has_background(BA,K,L1)
=> ( loca_level_below(admin,L,L1)
=> admin_indi_has_background(admin,K,L) ) ) ) ).
fof(ax21,axiom,
! [K,HR] :
( system_indi_is_hr_admin(system,HR)
=> ( hr_admin_indi_has_employment(HR,K)
=> admin_indi_has_employment(admin,K) ) ) ).
fof(ax22,axiom,
! [K] : admin_indi_has_citizenship(admin,K,anycountry) ).
fof(ax23,axiom,
! [K,U] :
( system_indi_has_citizenship(system,K,U)
=> admin_indi_has_citizenship(admin,K,U) ) ).
fof(ax24,axiom,
! [K] : admin_indi_has_level(admin,K,unclassified) ).
fof(ax25,axiom,
! [K,L,L1,LA,L11] :
( system_indi_needs_level(system,K,L1)
=> ( admin_indi_has_citizenship(admin,K,usa)
=> ( admin_indi_has_polygraph(admin,K)
=> ( admin_indi_has_employment(admin,K)
=> ( admin_indi_has_credit(admin,K)
=> ( loca_level_below(admin,L,L1)
=> ( system_indi_is_level_admin(system,LA)
=> ( level_admin_indi_has_level(LA,K,L11)
=> ( loca_level_below(admin,L,L11)
=> ( admin_indi_has_background(admin,K,L)
=> admin_indi_has_level(admin,K,L) ) ) ) ) ) ) ) ) ) ) ).
fof(ax26,axiom,
! [K] : admin_indi_has_compartments(admin,K,nil) ).
fof(ax27,axiom,
! [K,C,CL,SSO] :
( system_indi_needs_compartment(system,K,C)
=> ( admin_indi_has_employment(admin,K)
=> ( admin_indi_has_citizenship(admin,K,usa)
=> ( admin_indi_has_polygraph_for_compartment(admin,K,C)
=> ( admin_indi_has_credit_for_compartment(admin,K,C)
=> ( admin_compartment_has_sso(admin,C,SSO)
=> ( sso_indi_has_compartment(SSO,K,C)
=> ( admin_indi_has_background_for_compartment(admin,K,C)
=> ( admin_indi_has_level_for_compartment(admin,K,C)
=> ( admin_indi_has_compartments(admin,K,CL)
=> admin_indi_has_compartments(admin,K,cons(C,CL)) ) ) ) ) ) ) ) ) ) ) ).
fof(ax28,axiom,
! [K,C,OCA,L1,L2,B1,B2] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,B1,B2)
=> ( admin_indi_has_background(admin,K,L2)
=> admin_indi_has_background_for_compartment(admin,K,C) ) ) ) ).
fof(ax29,axiom,
! [K,C,OCA,L1,L2,B1,B2] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,B1,B2)
=> ( admin_indi_has_level(admin,K,L1)
=> admin_indi_has_level_for_compartment(admin,K,C) ) ) ) ).
fof(ax30,axiom,
! [K,C,OCA,L1,L2,B1] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,B1,yes)
=> ( admin_indi_has_polygraph(admin,K)
=> admin_indi_has_polygraph_for_compartment(admin,K,C) ) ) ) ).
fof(ax31,axiom,
! [K,C,OCA,L1,L2,B1] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,B1,no)
=> admin_indi_has_polygraph_for_compartment(admin,K,C) ) ) ).
fof(ax32,axiom,
! [K,C,OCA,L1,L2,B2] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,yes,B2)
=> ( admin_indi_has_credit(admin,K)
=> admin_indi_has_credit_for_compartment(admin,K,C) ) ) ) ).
fof(ax33,axiom,
! [K,C,OCA,L1,L2,B2] :
( system_indi_is_oca(system,OCA)
=> ( oca_compartment_is_compartment(OCA,C,L1,L2,no,B2)
=> admin_indi_has_credit_for_compartment(admin,K,C) ) ) ).
fof(ax34,axiom,
! [K,F,CL] :
( admin_file_has_compartments(admin,F,CL)
=> ( admin_indi_has_compartments(admin,K,CL)
=> admin_indi_has_compartments_for_file(admin,K,F) ) ) ).
fof(ax35,axiom,
! [K,F,L] :
( admin_file_has_level(admin,F,L)
=> ( admin_indi_has_level(admin,K,L)
=> admin_indi_has_level_for_file(admin,K,F) ) ) ).
fof(ax36,axiom,
! [K,F,OWR] :
( state_file_has_owner(F,OWR)
=> ( owner_indi_has_need_to_know(OWR,K,F)
=> admin_indi_has_need_to_know_for_file(admin,K,F) ) ) ).
fof(ax37,axiom,
! [K,F,L] :
( admin_file_has_citizenship(admin,F,L)
=> ( admin_indi_has_citizenship(admin,K,L)
=> admin_indi_has_citizenship_for_file(admin,K,F) ) ) ).
fof(ax38,axiom,
! [K,F] :
( admin_indi_has_citizenship(admin,K,usa)
=> admin_indi_has_citizenship_for_file(admin,K,F) ) ).
fof(ax39,axiom,
! [K,F] :
( state_file_is_not_working_paper(F)
=> ( admin_indi_has_citizenship_for_file(admin,K,F)
=> ( admin_indi_has_need_to_know_for_file(admin,K,F)
=> ( admin_indi_has_level_for_file(admin,K,F)
=> ( admin_indi_has_compartments_for_file(admin,K,F)
=> admin_indi_may_file(admin,K,F,read) ) ) ) ) ) ).
fof(ax40,axiom,
! [K,F,K1] :
( state_file_has_owner(F,K1)
=> ( system_indi_is_counterintelligence(system,K,K1)
=> admin_indi_may_file(admin,K,F,read) ) ) ).
%------------------------------------------------------------------------------
./SWV010^0.ax
%------------------------------------------------------------------------------
% File : SWV010^0 : TPTP v8.2.0. Released v3.7.0.
% Domain : Software Verification (Security)
% Axioms : Translation from Binder Logic (BL) to CS4
% Version : [Gar08] axioms.
% English :
% Refs : [AM+01] Alechina et al. (2001), Categorical and Kripke Semanti
% : [Gar08] Garg (2008), Principal-Centric Reasoning in Constructi
% : [Gar09] Garg (2009), Email to Geoff Sutcliffe
% Source : [Gar09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 23 ( 10 unt; 12 typ; 10 def)
% Number of atoms : 38 ( 10 equ; 0 cnn)
% Maximal formula atoms : 5 ( 1 avg)
% Number of connectives : 20 ( 0 ~; 0 |; 0 &; 20 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 2 avg; 20 nst)
% Number of types : 2 ( 0 usr)
% Number of type conns : 46 ( 46 >; 0 *; 0 +; 0 <<)
% Number of symbols : 24 ( 23 usr; 12 con; 0-3 aty)
% Number of variables : 12 ( 12 ^ 0 !; 0 ?; 12 :)
% SPC :
% Comments : Requires LCL008^0.ax LCL009^0.ax
% : This translation is not perfectly correct, because BL does not
% admit the Barcan formula, but its translation to BM4 does. That
% will not make a difference to the policies, however.
% : THF0 syntax
%------------------------------------------------------------------------------
%----We now introduce one predicate for each connective of BL, and define the
%----predicates.
%----An injection from principals to formulas. Has no definition, it's symbolic.
thf(princ_inj,type,
princ_inj: individuals > $i > $o ).
thf(bl_atom_decl,type,
bl_atom: ( $i > $o ) > $i > $o ).
thf(bl_princ_decl,type,
bl_princ: ( $i > $o ) > $i > $o ).
thf(bl_and_decl,type,
bl_and: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(bl_or_decl,type,
bl_or: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(bl_impl_decl,type,
bl_impl: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(bl_all_decl,type,
bl_all: ( individuals > $i > $o ) > $i > $o ).
thf(bl_true_decl,type,
bl_true: $i > $o ).
thf(bl_false_decl,type,
bl_false: $i > $o ).
thf(bl_says_decl,type,
bl_says: individuals > ( $i > $o ) > $i > $o ).
thf(bl_atom,definition,
( bl_atom
= ( ^ [P: $i > $o] : ( cs4_atom @ P ) ) ) ).
thf(bl_princ,definition,
( bl_princ
= ( ^ [P: $i > $o] : ( cs4_atom @ P ) ) ) ).
thf(bl_and,definition,
( bl_and
= ( ^ [A: $i > $o,B: $i > $o] : ( cs4_and @ A @ B ) ) ) ).
thf(bl_or,definition,
( bl_or
= ( ^ [A: $i > $o,B: $i > $o] : ( cs4_or @ A @ B ) ) ) ).
thf(bl_impl,definition,
( bl_impl
= ( ^ [A: $i > $o,B: $i > $o] : ( cs4_impl @ A @ B ) ) ) ).
thf(bl_all,definition,
( bl_all
= ( ^ [A: individuals > $i > $o] : ( cs4_all @ A ) ) ) ).
thf(bl_true,definition,
bl_true = cs4_true ).
thf(bl_false,definition,
bl_false = cs4_false ).
thf(bl_says,definition,
( bl_says
= ( ^ [K: individuals,A: $i > $o] : ( cs4_box @ ( cs4_impl @ ( bl_princ @ ( princ_inj @ K ) ) @ A ) ) ) ) ).
%----Validity in BL
thf(bl_valid_decl,type,
bl_valid: ( $i > $o ) > $o ).
thf(bl_valid_def,definition,
bl_valid = mvalid ).
%----Local authority (loca) - the strongest principal.
thf(loca_decl,type,
loca: individuals ).
%----Every principal must entail loca, this makes loca the strongest principal.
%----This is done by adding the CS4 axiom: forall K. [] (K => loca).
thf(loca_strength,axiom,
( cs4_valid
@ ( cs4_all
@ ^ [K: individuals] : ( cs4_impl @ ( princ_inj @ K ) @ ( princ_inj @ loca ) ) ) ) ).
%------------------------------------------------------------------------------
./SWV011+0.ax
%------------------------------------------------------------------------------
% File : SWV011+0 : TPTP v8.2.0. Released v4.0.0.
% Domain : Software Verification
% Axioms : Axioms for verification of Stoller's leader election algorithm
% Version : [Sve07] axioms : Especial.
% English :
% Refs : [Sto97] Stoller (1997), Leader Election in Distributed Systems
% : [Sve07] Svensson (2007), Email to Koen Claessen
% : [Sve08] Svensson (2008), A Semi-Automatic Correctness Proof Pr
% Source : [Sve07]
% Names : stoller2 [Sve07]
% : con_sys [Sve07]
% : cons_snoc [Sve07]
% : arith [Sve07]
% : sets [Sve07]
% Status : Satisfiable
% Syntax : Number of formulae : 66 ( 40 unt; 0 def)
% Number of atoms : 111 ( 62 equ)
% Maximal formula atoms : 7 ( 1 avg)
% Number of connectives : 89 ( 44 ~; 7 |; 14 &)
% ( 13 <=>; 11 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 6 ( 5 usr; 0 prp; 1-2 aty)
% Number of functors : 27 ( 27 usr; 11 con; 0-2 aty)
% Number of variables : 119 ( 118 !; 1 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Stoller axioms messages and such things
%----NewPid
fof(axiom,axiom,
! [Pid,Pid2] :
( elem(m_Ack(Pid,Pid2),queue(host(Pid)))
=> ( setIn(Pid,pids)
& setIn(Pid2,pids) ) ) ).
fof(axiom_01,axiom,
! [P,Q] :
( s(host(P)) = host(Q)
=> host(P) != host(Q) ) ).
fof(axiom_02,axiom,
! [P] : leq(s(zero),host(P)) ).
fof(axiom_03,axiom,
leq(s(zero),nbr_proc) ).
fof(axiom_04,axiom,
! [P] : leq(host(P),nbr_proc) ).
fof(axiom_05,axiom,
elec_1 != elec_2 ).
fof(axiom_06,axiom,
elec_1 != wait ).
fof(axiom_07,axiom,
elec_1 != norm ).
fof(axiom_08,axiom,
elec_2 != wait ).
fof(axiom_09,axiom,
elec_2 != norm ).
fof(axiom_10,axiom,
norm != wait ).
fof(axiom_11,axiom,
! [X,Y,Z] : m_Ack(X,Y) != m_Halt(Z) ).
fof(axiom_12,axiom,
! [X,Y,Z] : m_Ack(X,Y) != m_Down(Z) ).
fof(axiom_13,axiom,
! [X,Y,Z] : m_Ack(X,Y) != m_NotNorm(Z) ).
fof(axiom_14,axiom,
! [X,Y,Z] : m_Ack(X,Y) != m_Ldr(Z) ).
fof(axiom_15,axiom,
! [X,Y,Z] : m_Ack(X,Y) != m_NormQ(Z) ).
fof(axiom_16,axiom,
! [X,Y] : m_NotNorm(X) != m_Halt(Y) ).
fof(axiom_17,axiom,
! [X,Y] : m_Down(X) != m_Halt(Y) ).
fof(axiom_18,axiom,
! [X,Y] : m_Down(X) != m_Ldr(Y) ).
fof(axiom_19,axiom,
! [X,Y] : m_Down(X) != m_NotNorm(Y) ).
fof(axiom_20,axiom,
! [X,Y] : m_Down(X) != m_NormQ(Y) ).
fof(axiom_21,axiom,
! [X,Y] : m_NormQ(X) != m_Halt(Y) ).
fof(axiom_22,axiom,
! [X,Y] : m_Ldr(X) != m_Halt(Y) ).
fof(axiom_23,axiom,
! [X,Y] : m_Ldr(X) != m_NormQ(Y) ).
fof(axiom_24,axiom,
! [X,Y] : m_Ldr(X) != m_NotNorm(Y) ).
fof(axiom_25,axiom,
! [X,Y] : m_NormQ(X) != m_NotNorm(Y) ).
fof(axiom_26,axiom,
! [X,Y] :
( X != Y
<=> m_Halt(X) != m_Halt(Y) ) ).
fof(axiom_27,axiom,
! [X,Y] :
( X != Y
<=> m_NormQ(X) != m_NormQ(Y) ) ).
fof(axiom_28,axiom,
! [X,Y] :
( X != Y
<=> m_NotNorm(X) != m_NotNorm(Y) ) ).
fof(axiom_29,axiom,
! [X,Y] :
( X != Y
<=> m_Ldr(X) != m_Ldr(Y) ) ).
fof(axiom_30,axiom,
! [X,Y] :
( X != Y
<=> m_Down(X) != m_Down(Y) ) ).
fof(axiom_31,axiom,
! [X1,X2,Y1,Y2] :
( X1 != X2
=> m_Ack(X1,Y1) != m_Ack(X2,Y2) ) ).
fof(axiom_32,axiom,
! [X1,X2,Y1,Y2] :
( Y1 != Y2
=> m_Ack(X1,Y1) != m_Ack(X2,Y2) ) ).
%----Axioms for a concurrent system; i.e. Pids and Alive
fof(axiom_33,axiom,
! [Pid,Pid2] :
( host(Pid) != host(Pid2)
=> Pid != Pid2 ) ).
fof(axiom_34,axiom,
~ setIn(nil,alive) ).
%----Axioms for snoc and cons style of queues
%----Injective
fof(axiom_35,axiom,
! [X,Q] : head(cons(X,Q)) = X ).
fof(axiom_36,axiom,
! [X,Q] : tail(cons(X,Q)) = Q ).
fof(axiom_37,axiom,
! [Y,Q] : last(snoc(Q,Y)) = Y ).
fof(axiom_38,axiom,
! [Y,Q] : init(snoc(Q,Y)) = Q ).
%----Surjective
fof(axiom_39,axiom,
! [Q] :
( Q = q_nil
| Q = cons(head(Q),tail(Q)) ) ).
fof(axiom_40,axiom,
! [Q] :
( Q = q_nil
| Q = snoc(init(Q),last(Q)) ) ).
%----Exclusive
fof(axiom_41,axiom,
! [X,Q] : q_nil != cons(X,Q) ).
fof(axiom_42,axiom,
! [Y,Q] : q_nil != snoc(Q,Y) ).
%----Equal singleton queue
fof(axiom_43,axiom,
! [X] : cons(X,q_nil) = snoc(q_nil,X) ).
%----Snoc+cons equals cons+snoc
fof(axiom_44,axiom,
! [X,Y,Q] : snoc(cons(X,Q),Y) = cons(X,snoc(Q,Y)) ).
%----Elem
fof(axiom_45,axiom,
! [X] : ~ elem(X,q_nil) ).
fof(axiom_46,axiom,
! [X,Y,Q] :
( elem(X,cons(Y,Q))
<=> ( X = Y
| elem(X,Q) ) ) ).
fof(axiom_47,axiom,
! [X,Y,Q] :
( elem(X,snoc(Q,Y))
<=> ( X = Y
| elem(X,Q) ) ) ).
%----Ordered
fof(axiom_48,axiom,
! [X] :
( pidElem(X)
<=> ? [Y] :
( X = m_Halt(Y)
| X = m_Down(Y) ) ) ).
fof(axiom_49,axiom,
! [X] : pidMsg(m_Halt(X)) = X ).
fof(axiom_50,axiom,
! [X] : pidMsg(m_Down(X)) = X ).
fof(axiom_51,axiom,
ordered(q_nil) ).
fof(axiom_52,axiom,
! [X] :
( ordered(cons(X,q_nil))
& ordered(snoc(q_nil,X)) ) ).
fof(axiom_53,axiom,
! [X,Q] :
( ordered(cons(X,Q))
<=> ( ordered(Q)
& ! [Y] :
( ( elem(Y,Q)
& pidElem(X)
& pidElem(Y)
& host(pidMsg(Y)) = host(pidMsg(X)) )
=> leq(pidMsg(X),pidMsg(Y)) ) ) ) ).
fof(axiom_54,axiom,
! [X,Q] :
( ordered(snoc(Q,X))
<=> ( ordered(Q)
& ! [Y] :
( ( elem(Y,Q)
& pidElem(X)
& pidElem(Y)
& host(pidMsg(Y)) = host(pidMsg(X)) )
=> leq(pidMsg(Y),pidMsg(X)) ) ) ) ).
%----Helper axioms
fof(axiom_55,axiom,
! [Q,X,Y] :
( ordered(Q)
=> ordered(snoc(Q,m_Ack(X,Y))) ) ).
fof(axiom_56,axiom,
! [Q,X] :
( ordered(Q)
=> ordered(snoc(Q,m_Ldr(X))) ) ).
fof(axiom_57,axiom,
! [Q,X,Y] :
( ( ordered(cons(m_Halt(X),Q))
& host(X) = host(Y)
& elem(m_Down(Y),Q) )
=> leq(X,Y) ) ).
fof(axiom_58,axiom,
! [X] : ~ leq(s(X),X) ).
fof(axiom_59,axiom,
! [X] : leq(X,X) ).
fof(axiom_60,axiom,
! [X,Y] :
( leq(X,Y)
| leq(Y,X) ) ).
fof(axiom_61,axiom,
! [X,Y] :
( ( leq(X,Y)
& leq(Y,X) )
<=> X = Y ) ).
fof(axiom_62,axiom,
! [X,Y,Z] :
( ( leq(X,Y)
& leq(Y,Z) )
=> leq(X,Z) ) ).
fof(axiom_63,axiom,
! [X,Y] :
( leq(X,Y)
<=> leq(s(X),s(Y)) ) ).
fof(axiom_64,axiom,
! [X,Y] :
( leq(X,s(Y))
<=> ( X = s(Y)
| leq(X,Y) ) ) ).
%----Set axioms
fof(axiom_65,axiom,
! [X] : ~ setIn(X,setEmpty) ).
%------------------------------------------------------------------------------
./SWV012+0.ax
%------------------------------------------------------------------------------
% File : SWV012+0 : TPTP v8.2.0. Released v5.2.0.
% Domain : Software Verification
% Axioms : Syntactic definitions of the logical operators
% Version : [deN09] axioms : Especial.
% English :
% Refs : [deN09] de Nivelle (2009), Email to Geoff Sutcliffe
% Source : [deN09]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 44 ( 14 unt; 0 def)
% Number of atoms : 96 ( 49 equ)
% Maximal formula atoms : 9 ( 2 avg)
% Number of connectives : 77 ( 25 ~; 6 |; 26 &)
% ( 5 <=>; 15 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 4 avg)
% Maximal term depth : 5 ( 1 avg)
% Number of predicates : 5 ( 4 usr; 0 prp; 1-2 aty)
% Number of functors : 27 ( 27 usr; 5 con; 0-3 aty)
% Number of variables : 75 ( 61 !; 14 ?)
% SPC : FOF_SAT_RFO_SEQ
% Comments : For each op in {and, lazy_and, or, exists, not, false}, this file
% contains the following:
% op1 : the semantic definition of Theorem 4.
% op2 : the syntactic definition of Figure 4.
% For each operator, we define a goal of form
% FOR EACH arg1, ... argn,
% op1(arg1,...,argn) = op2(arg1, ..., argn).
% We specify the structure of the domain U_D.
% We define the following predicates:
% d(A) : A in D.
% bool(A) : A in { false, true }.
% Note that U_D = U_0 |_| U_1 |_| U_2 |_| ...., and D = U_0.
%------------------------------------------------------------------------------
%----The predicate bool is true exactly on true and false:
fof(def_bool,axiom,
! [X] :
( bool(X)
<=> ( X = false
| X = true ) ) ).
%----err, true and false are distinct constants:
fof(distinct_false_true_err,axiom,
( true != false
& true != err
& false != err ) ).
%----err, true and false are in D:
fof(false_true_err_in_d,axiom,
( d(true)
& d(false)
& d(err) ) ).
%----forallprefers is needed by the forall quantifier.
%----In the rest of this comment we write '<' for 'forallprefers.'
%----< is defined by the sequence
%----( U_D \ D ) < ( D \ bool ) < f < t.
%----The value of forall x p(x) is obtained as follows:
%----First define R := range of lambda x. p(x).
%----Select a <-minimal element in R.
%----Return Phi(r), where r is the selected element.
%----Notin D is preferred over D.
%----Inside D, nonbool is preferred over bool.
%----Inside bool, false is preferred over true:
%----The <-order is partial.
fof(def_forallprefers,axiom,
! [X,Y] :
( forallprefers(X,Y)
<=> ( ( ~ d(X)
& d(Y) )
| ( d(X)
& d(Y)
& ~ bool(X)
& bool(Y) )
| ( X = false
& Y = true ) ) ) ).
%----existsprefers is like forallprefers, but it is defined by
%----the sequence:
%---- ( U_D \ D ) < ( D \ bool ) < t < f.
fof(def_existsprefers,axiom,
! [X,Y] :
( existsprefers(X,Y)
<=> ( ( ~ d(X)
& d(Y) )
| ( d(X)
& d(Y)
& ~ bool(X)
& bool(Y) )
| ( X = true
& Y = false ) ) ) ).
%----The function phi(X) is defined by:
%----phi(X) = err if X not in D.
%----phi(X) = X if X in D.
%----It is defined in Definition 8 of the paper.
fof(def_phi,axiom,
! [X] :
( ( d(X)
& phi(X) = X )
| ( ~ d(X)
& phi(X) = err ) ) ).
%----Axiomatization of prop.
%----The difference between bool and prop is that bool
%----is a predicate which we use in the meta language (TPTP),
%----while prop is a function inside the logic.
fof(prop_true,axiom,
! [X] :
( prop(X) = true
<=> bool(X) ) ).
fof(prop_false,axiom,
! [X] :
( prop(X) = false
<=> ~ bool(X) ) ).
%----Axiomatization of impl. Because impl and lazy_impl are primitive,
%----they have only one definition:
%---- If A is not bool, then ( A -> B ) = phi(A).
%---- If A is bool, but B is not bool, then ( A -> B ) = phi(B).
%---- If A is false, and B is bool, then ( A -> B ) = true
%---- If A is true, and B is bool, then ( A -> B ) = B.
fof(impl_axiom1,axiom,
! [A,B] :
( ~ bool(A)
=> impl(A,B) = phi(A) ) ).
fof(impl_axiom2,axiom,
! [A,B] :
( ( bool(A)
& ~ bool(B) )
=> impl(A,B) = phi(B) ) ).
fof(impl_axiom3,axiom,
! [B] :
( bool(B)
=> impl(false,B) = true ) ).
fof(impl_axiom4,axiom,
! [B] :
( bool(B)
=> impl(true,B) = B ) ).
%----Axiomatization of lazy_impl:
%---- If A is not bool, then [A] B = phi(A).
%---- If A is false, then [A] B = true.
%---- If A is true, then [A] B = phi(B).
fof(lazy_impl_axiom1,axiom,
! [A,B] :
( ~ bool(A)
=> lazy_impl(A,B) = phi(A) ) ).
fof(lazy_impl_axiom2,axiom,
! [B] : lazy_impl(false,B) = true ).
fof(lazy_impl_axiom3,axiom,
! [B] : lazy_impl(true,B) = phi(B) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----Axiomatization of semantic definition of and:
%---- If A is not bool, then ( A /\ B ) = phi(A).
%---- If A is bool, but B is not bool, then ( A /\ B ) = phi(B).
%---- If A = false, and B is bool, then ( A /\ B ) = false.
%---- If A = true, and B is bool, then ( A /\ B ) = B.
fof(and1_axiom1,axiom,
! [A,B] :
( ~ bool(A)
=> and1(A,B) = phi(A) ) ).
fof(and1_axiom2,axiom,
! [A,B] :
( ( bool(A)
& ~ bool(B) )
=> and1(A,B) = phi(B) ) ).
fof(and1_axiom3,axiom,
! [B] :
( bool(B)
=> and1(false,B) = false ) ).
fof(and1_axiom4,axiom,
! [B] :
( bool(B)
=> and1(true,B) = B ) ).
%----Syntactic definition of and in Figure 4:
%----The definition is:
%----P /\ Q = forall R, [ Prop(R) ] ( P -> Q -> R ) -> R.
fof(def_f1,axiom,
! [P,Q,R] : f1(P,Q,R) = lazy_impl(prop(R),impl(impl(P,impl(Q,R)),R)) ).
fof(def_and2,axiom,
! [P,Q] :
? [R] :
( and2(P,Q) = phi(f1(P,Q,R))
& ~ ? [R1] : forallprefers(f1(P,Q,R1),f1(P,Q,R)) ) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----Axiomatization of semantic definition of lazy_and:
%---- If A is not bool, then <A> B = phi(A).
%---- If A is false, then <A> B = false.
%---- If A is true, then <A> B = phi(B).
fof(lazy_and1_axiom1,axiom,
! [A,B] :
( ~ bool(A)
=> lazy_and1(A,B) = phi(A) ) ).
fof(lazy_and1_axiom2,axiom,
! [B] : lazy_and1(false,B) = false ).
fof(lazy_and1_axiom3,axiom,
! [B] : lazy_and1(true,B) = phi(B) ).
%----Syntactic definition of lazy_and in Figure 4:
%----The definition is:
%---- <P> Q = forall R, [ Prop(R) ] ( [ P ] Q -> R ) -> R.
fof(def_f2,axiom,
! [P,Q,R] : f2(P,Q,R) = lazy_impl(prop(R),impl(lazy_impl(P,impl(Q,R)),R)) ).
fof(def_lazy_and2,axiom,
! [P,Q] :
? [R] :
( lazy_and2(P,Q) = phi(f2(P,Q,R))
& ~ ? [R1] : forallprefers(f2(P,Q,R1),f2(P,Q,R)) ) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----Axiomatization of semantic definition of or:
%---- If A is not bool, then ( A \/ B ) = phi(A).
%---- If A is bool, but B is not bool, then ( A \/ B ) = phi(B).
%---- If A = true, and B is bool, then ( A \/ B ) = true.
%---- If A = false, and B is bool, then ( A \/ B ) = B.
fof(or1_axiom1,axiom,
! [A,B] :
( ~ bool(A)
=> or1(A,B) = phi(A) ) ).
fof(or1_axiom2,axiom,
! [A,B] :
( ( bool(A)
& ~ bool(B) )
=> or1(A,B) = phi(B) ) ).
fof(or1_axiom3,axiom,
! [B] :
( bool(B)
=> or1(true,B) = true ) ).
fof(or1_axiom4,axiom,
! [B] :
( bool(B)
=> or1(false,B) = B ) ).
%----Syntactic definition of or in Figure 4.
%----The definition is:
%----P \/ Q = forall R, [ Prop(R) ] ( P -> R ) -> ( Q -> R ) -> R.
fof(def_f3,axiom,
! [P,Q,R] : f3(P,Q,R) = lazy_impl(prop(R),impl(impl(P,R),impl(impl(Q,R),R))) ).
fof(def_or2,axiom,
! [P,Q] :
? [R] :
( or2(P,Q) = phi(f3(P,Q,R))
& ~ ? [R1] : forallprefers(f3(P,Q,R1),f3(P,Q,R)) ) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----Axiomatization of semantic definition of exists.
%----
%----For each predicate, there exists an an x, s.t.
%----exists(P) = phi( P. x ) and
%---- there exists no x1, s.t. ( P. x1 ) < ( P. x ), where
%---- < is the existsprefers order, and
%---- . is the application operator.
fof(exists1_axiom1,axiom,
! [P] :
? [X] :
( exists1(P) = phi(apply(P,X))
& ~ ? [X1] : existsprefers(apply(P,X1),apply(P,X)) ) ).
%----Syntactic definition of exists in the paper:
%
%----( Exists P ) = forall R, [ Prop(R) ] ( forall x ( P x ) -> R ) -> R.
%
%----We define functions f4(P,x,R) := ( P. x ) -> R.
%---- f5(P,R) := forall x. f4( P,x,R )
%---- f6(P,R) := [ Prop(R) ] f5( P, R ) -> R.
%---- exists2(P) := forall R. f6( P, R ).
fof(def_f4,axiom,
! [P,X,R] : f4(P,X,R) = impl(apply(P,X),R) ).
fof(def_f5,axiom,
! [P,R] :
? [X] :
( f5(P,R) = phi(f4(P,X,R))
& ~ ? [X1] : forallprefers(f4(P,X1,R),f4(P,X,R)) ) ).
fof(def_f6,axiom,
! [P,R] : f6(P,R) = lazy_impl(prop(R),impl(f5(P,R),R)) ).
fof(def_exists2,axiom,
! [P] :
? [R] :
( exists2(P) = phi(f6(P,R))
& ~ ? [R1] : forallprefers(f6(P,R1),f6(P,R)) ) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----The semantic definition of false is just the false constant.
fof(def_false1,axiom,
false1 = false ).
%----The syntactic definition of false equals:
%---- false := forall P, [ Prop(P) ] P .
%----f7(P) := [ Prop(P) ] P.
fof(def_f7,axiom,
! [P] : f7(P) = lazy_impl(prop(P),P) ).
fof(def_false2,axiom,
? [P] :
( false2 = phi(f7(P))
& ~ ? [P1] : forallprefers(f7(P1),f7(P)) ) ).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----Axiomatization of semantic definition of not:
%---- If A is not bool, then not(A) = phi(A).
%---- If A = false, then not(A) = true.
%---- If A = true, then not(A) = false.
fof(not1_axiom1,axiom,
! [A] :
( ~ bool(A)
=> not1(A) = phi(A) ) ).
fof(not1_axiom2,axiom,
not1(false) = true ).
fof(not1_axiom3,axiom,
not1(true) = false ).
%----Syntactic definition of not in paper:
%----The definition is:
%----~ P := ( P -> False ).
fof(def_not2,axiom,
! [P] : not2(P) = impl(P,false2) ).
%------------------------------------------------------------------------------
./SWV013-0.ax
%------------------------------------------------------------------------------
% File : SWV013-0 : TPTP v8.2.0. Released v5.2.0.
% Domain : Software Verification
% Axioms : Lists in Separation Logic
% Version : [Nav11] axioms.
% English : Axioms for proving entailments between separation logic formulas
% with list predicates.
% Refs : [BCO05] Berdine et al. (2005), Symbolic Execution with Separat
% : [RN11] Rybalchenko & Navarro Perez (2011), Separation Logic +
% : [Nav11] Navarro Perez (2011), Email to Geoff Sutcliffe
% Source : [Nav11]
% Names : SepLogicLists [Nav11]
% Status : Satisfiable
% Syntax : Number of clauses : 11 ( 4 unt; 3 nHn; 9 RR)
% Number of literals : 21 ( 8 equ; 9 neg)
% Maximal clause size : 3 ( 1 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 4 ( 4 usr; 1 con; 0-2 aty)
% Number of variables : 38 ( 9 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----S * T * Sigma = T * S * Sigma.
cnf(associative_commutative,axiom,
sep(S,sep(T,Sigma)) = sep(T,sep(S,Sigma)) ).
%----lseg(X, X) * Sigma = Sigma.
cnf(normalization,axiom,
sep(lseg(X,X),Sigma) = Sigma ).
%----next(nil, Y) * Sigma --> bot.
cnf(wellformedness_1,axiom,
~ heap(sep(next(nil,Y),Sigma)) ).
%----lseg(nil, Y) * Sigma --> Y = nil.
cnf(wellformedness_2,axiom,
( ~ heap(sep(lseg(nil,Y),Sigma))
| Y = nil ) ).
%----next(X, Y) * next(X, Z) * Sigma --> bot.
cnf(wellformedness_3,axiom,
~ heap(sep(next(X,Y),sep(next(X,Z),Sigma))) ).
%----next(X, Y) * lseg(X, Z) * Sigma --> X = Z.
cnf(wellformedness_4,axiom,
( ~ heap(sep(next(X,Y),sep(lseg(X,Z),Sigma)))
| X = Z ) ).
%----lseg(X, Y) * lseg(X, Z) * Sigma --> X = Y, X = Z.
cnf(wellformedness_5,axiom,
( ~ heap(sep(lseg(X,Y),sep(lseg(X,Z),Sigma)))
| X = Y
| X = Z ) ).
%----next(X, Z) * Sigma --> X = Z, lseg(X, Z) * Sigma. (REDUNDANT: U2 + NORM)
%cnf(unfolding_1,axiom,
% ( ~ heap(sep(next(X, Z), Sigma))
% | X = Z
% | heap(sep(lseg(X, Z), Sigma)) )).
%----next(X, Y) * lseg(Y, Z) * Sigma --> X = Y, lseg(X, Z) * Sigma.
cnf(unfolding_2,axiom,
( ~ heap(sep(next(X,Y),sep(lseg(Y,Z),Sigma)))
| X = Y
| heap(sep(lseg(X,Z),Sigma)) ) ).
%----lseg(X, Y) * lseg(Y, nil) * Sigma --> lseg(X, nil) * Sigma.
cnf(unfolding_3,axiom,
( ~ heap(sep(lseg(X,Y),sep(lseg(Y,nil),Sigma)))
| heap(sep(lseg(X,nil),Sigma)) ) ).
%----lseg(X, Y) * lseg(Y, Z) * next(Z, W) * Sigma -->
%---- lseg(X, Z) * next(Z, W) * Sigma.
cnf(unfolding_4,axiom,
( ~ heap(sep(lseg(X,Y),sep(lseg(Y,Z),sep(next(Z,W),Sigma))))
| heap(sep(lseg(X,Z),sep(next(Z,W),Sigma))) ) ).
%----lseg(X, Y) * lseg(Y, Z) * lseg(Z, W) * Sigma -->
%---- Z = W, lseg(X, Z) * lseg(Z, W) * Sigma.
cnf(unfolding_5,axiom,
( ~ heap(sep(lseg(X,Y),sep(lseg(Y,Z),sep(lseg(Z,W),Sigma))))
| Z = W
| heap(sep(lseg(X,Z),sep(lseg(Z,W),Sigma))) ) ).
%------------------------------------------------------------------------------
./SYN000+0.ax
%------------------------------------------------------------------------------
% File : SYN000+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Syntactic
% Axioms : A simple include file for FOF
% Version : Biased.
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 3 ( 3 unt; 0 def)
% Number of atoms : 3 ( 0 equ)
% Maximal formula atoms : 1 ( 1 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 3 ( 3 usr; 3 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Some axioms to include
fof(ia1,axiom,
ia1 ).
fof(ia2,axiom,
ia2 ).
fof(ia3,axiom,
ia3 ).
%------------------------------------------------------------------------------
./SYN000-0.ax
%------------------------------------------------------------------------------
% File : SYN000-0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Syntactic
% Axioms : A simple include file for CNF
% Version : Biased.
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 3 ( 3 unt; 0 nHn; 3 RR)
% Number of literals : 3 ( 0 equ; 0 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of predicates : 3 ( 3 usr; 3 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 sgn)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Some axioms to include
cnf(ia1,axiom,
ia1 ).
cnf(ia2,axiom,
ia2 ).
cnf(ia3,axiom,
ia3 ).
%------------------------------------------------------------------------------
./SYN000^0.ax
%------------------------------------------------------------------------------
% File : SYN000^0 : TPTP v8.2.0. Released v3.7.0.
% Domain : Syntactic
% Axioms : A simple include file for THF
% Version : Biased.
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 3 unt; 3 typ; 0 def)
% Number of atoms : 3 ( 0 equ; 0 cnn)
% Maximal formula atoms : 1 ( 0 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &; 0 @)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Number of types : 1 ( 0 usr)
% Number of type conns : 0 ( 0 >; 0 *; 0 +; 0 <<)
% Number of symbols : 3 ( 3 usr; 3 con; 0-0 aty)
% Number of variables : 0 ( 0 ^ 0 !; 0 ?; 0 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Some axioms to include
thf(ia1_type,type,
ia1: $o ).
thf(ia2_type,type,
ia2: $o ).
thf(ia3_type,type,
ia3: $o ).
thf(ia1,axiom,
ia1 ).
thf(ia2,axiom,
ia2 ).
thf(ia3,axiom,
ia3 ).
%------------------------------------------------------------------------------
./SYN000_0.ax
%------------------------------------------------------------------------------
% File : SYN000_0 : TPTP v8.2.0. Released v5.0.0.
% Domain : Syntactic
% Axioms : A simple include file for TFF
% Version : Biased.
% English :
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 6 ( 3 unt; 3 typ; 0 def)
% Number of atoms : 3 ( 0 equ)
% Maximal formula atoms : 1 ( 0 avg)
% Number of connectives : 0 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 1 ( 1 avg)
% Maximal term depth : 0 ( 0 avg)
% Number of types : 1 ( 0 usr)
% Number of type conns : 0 ( 0 >; 0 *; 0 +; 0 <<)
% Number of predicates : 3 ( 3 usr; 3 prp; 0-0 aty)
% Number of functors : 0 ( 0 usr; 0 con; --- aty)
% Number of variables : 0 ( 0 !; 0 ?; 0 :)
% SPC :
% Comments :
%------------------------------------------------------------------------------
%----Some axioms to include
tff(ia1_type,type,
ia1: $o ).
tff(ia2_type,type,
ia2: $o ).
tff(ia3_type,type,
ia3: $o ).
tff(ia1,axiom,
ia1 ).
tff(ia2,axiom,
ia2 ).
tff(ia3,axiom,
ia3 ).
%------------------------------------------------------------------------------
./SYN001-0.ax
Very long 1821
./SYN002+0.ax
%------------------------------------------------------------------------------
% File : SYN002+0 : TPTP v8.2.0. Released v3.6.0.
% Domain : Syntactic
% Axioms : Orevkov formula
% Version : [TS00] axioms : Especial.
% English : r(x,y,z)=y+2^x=z
% Refs : [TS00] Troelska & Schwichtenberg (2000), Basic Proof Theory
% : [Rat08] Raths (2008), Email to G. Sutcliffe
% Source : [Rat08]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 2 ( 1 unt; 0 def)
% Number of atoms : 4 ( 0 equ)
% Maximal formula atoms : 3 ( 2 avg)
% Number of connectives : 2 ( 0 ~; 0 |; 0 &)
% ( 0 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 1 ( 1 usr; 0 prp; 3-3 aty)
% Number of functors : 2 ( 2 usr; 1 con; 0-1 aty)
% Number of variables : 5 ( 5 !; 0 ?)
% SPC :
% Comments :
%------------------------------------------------------------------------------
fof(hyp1,axiom,
! [Y] : r(Y,zero,succ(Y)) ).
fof(hyp2,axiom,
! [Y,X,Z,Z1] :
( r(Y,X,Z)
=> ( r(Z,X,Z1)
=> r(Y,succ(X),Z1) ) ) ).
%------------------------------------------------------------------------------
./TOP001-0.ax
%--------------------------------------------------------------------------
% File : TOP001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain : Topology (Point set)
% Axioms : Point-set topology
% Version : [WM89] axioms : Incomplete.
% English :
% Refs : [WM89] Wick & McCune (1989), Automated Reasoning about Elemen
% Source : [WM89]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 109 ( 0 unt; 23 nHn; 104 RR)
% Number of literals : 336 ( 0 equ; 205 neg)
% Maximal clause size : 8 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 22 ( 22 usr; 0 prp; 1-4 aty)
% Number of functors : 35 ( 35 usr; 1 con; 0-5 aty)
% Number of variables : 357 ( 56 sgn)
% SPC :
% Comments : These axioms are incomplete, in that they do not contain the
% requisite set theory axioms. Problems that use this axiom set
% must supply appropriate set theory axioms.
%--------------------------------------------------------------------------
%----Sigma (union of members).
cnf(union_of_members_1,axiom,
( ~ element_of_set(U,union_of_members(Vf))
| element_of_set(U,f1(Vf,U)) ) ).
cnf(union_of_members_2,axiom,
( ~ element_of_set(U,union_of_members(Vf))
| element_of_collection(f1(Vf,U),Vf) ) ).
cnf(union_of_members_3,axiom,
( element_of_set(U,union_of_members(Vf))
| ~ element_of_set(U,Uu1)
| ~ element_of_collection(Uu1,Vf) ) ).
%----Pi (intersection of members).
cnf(intersection_of_members_4,axiom,
( ~ element_of_set(U,intersection_of_members(Vf))
| ~ element_of_collection(Va,Vf)
| element_of_set(U,Va) ) ).
cnf(intersection_of_members_5,axiom,
( element_of_set(U,intersection_of_members(Vf))
| element_of_collection(f2(Vf,U),Vf) ) ).
cnf(intersection_of_members_6,axiom,
( element_of_set(U,intersection_of_members(Vf))
| ~ element_of_set(U,f2(Vf,U)) ) ).
%----Topological space
cnf(topological_space_7,axiom,
( ~ topological_space(X,Vt)
| equal_sets(union_of_members(Vt),X) ) ).
cnf(topological_space_8,axiom,
( ~ topological_space(X,Vt)
| element_of_collection(empty_set,Vt) ) ).
cnf(topological_space_9,axiom,
( ~ topological_space(X,Vt)
| element_of_collection(X,Vt) ) ).
cnf(topological_space_10,axiom,
( ~ topological_space(X,Vt)
| ~ element_of_collection(Y,Vt)
| ~ element_of_collection(Z,Vt)
| element_of_collection(intersection_of_sets(Y,Z),Vt) ) ).
cnf(topological_space_11,axiom,
( ~ topological_space(X,Vt)
| ~ subset_collections(Vf,Vt)
| element_of_collection(union_of_members(Vf),Vt) ) ).
cnf(topological_space_12,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| element_of_collection(f3(X,Vt),Vt)
| subset_collections(f5(X,Vt),Vt) ) ).
cnf(topological_space_13,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| element_of_collection(f3(X,Vt),Vt)
| ~ element_of_collection(union_of_members(f5(X,Vt)),Vt) ) ).
cnf(topological_space_14,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| element_of_collection(f4(X,Vt),Vt)
| subset_collections(f5(X,Vt),Vt) ) ).
cnf(topological_space_15,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| element_of_collection(f4(X,Vt),Vt)
| ~ element_of_collection(union_of_members(f5(X,Vt)),Vt) ) ).
cnf(topological_space_16,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| ~ element_of_collection(intersection_of_sets(f3(X,Vt),f4(X,Vt)),Vt)
| subset_collections(f5(X,Vt),Vt) ) ).
cnf(topological_space_17,axiom,
( topological_space(X,Vt)
| ~ equal_sets(union_of_members(Vt),X)
| ~ element_of_collection(empty_set,Vt)
| ~ element_of_collection(X,Vt)
| ~ element_of_collection(intersection_of_sets(f3(X,Vt),f4(X,Vt)),Vt)
| ~ element_of_collection(union_of_members(f5(X,Vt)),Vt) ) ).
%----Open set
cnf(open_set_18,axiom,
( ~ open(U,X,Vt)
| topological_space(X,Vt) ) ).
cnf(open_set_19,axiom,
( ~ open(U,X,Vt)
| element_of_collection(U,Vt) ) ).
cnf(open_set_20,axiom,
( open(U,X,Vt)
| ~ topological_space(X,Vt)
| ~ element_of_collection(U,Vt) ) ).
%----Closed set
cnf(closed_set_21,axiom,
( ~ closed(U,X,Vt)
| topological_space(X,Vt) ) ).
cnf(closed_set_22,axiom,
( ~ closed(U,X,Vt)
| open(relative_complement_sets(U,X),X,Vt) ) ).
cnf(closed_set_23,axiom,
( closed(U,X,Vt)
| ~ topological_space(X,Vt)
| ~ open(relative_complement_sets(U,X),X,Vt) ) ).
%----Finer topology
cnf(finer_topology_24,axiom,
( ~ finer(Vt,Vs,X)
| topological_space(X,Vt) ) ).
cnf(finer_topology_25,axiom,
( ~ finer(Vt,Vs,X)
| topological_space(X,Vs) ) ).
cnf(finer_topology_26,axiom,
( ~ finer(Vt,Vs,X)
| subset_collections(Vs,Vt) ) ).
cnf(finer_topology_27,axiom,
( finer(Vt,Vs,X)
| ~ topological_space(X,Vt)
| ~ topological_space(X,Vs)
| ~ subset_collections(Vs,Vt) ) ).
%----Basis for a topology
cnf(basis_for_topology_28,axiom,
( ~ basis(X,Vf)
| equal_sets(union_of_members(Vf),X) ) ).
cnf(basis_for_topology_29,axiom,
( ~ basis(X,Vf)
| ~ element_of_set(Y,X)
| ~ element_of_collection(Vb1,Vf)
| ~ element_of_collection(Vb2,Vf)
| ~ element_of_set(Y,intersection_of_sets(Vb1,Vb2))
| element_of_set(Y,f6(X,Vf,Y,Vb1,Vb2)) ) ).
cnf(basis_for_topology_30,axiom,
( ~ basis(X,Vf)
| ~ element_of_set(Y,X)
| ~ element_of_collection(Vb1,Vf)
| ~ element_of_collection(Vb2,Vf)
| ~ element_of_set(Y,intersection_of_sets(Vb1,Vb2))
| element_of_collection(f6(X,Vf,Y,Vb1,Vb2),Vf) ) ).
cnf(basis_for_topology_31,axiom,
( ~ basis(X,Vf)
| ~ element_of_set(Y,X)
| ~ element_of_collection(Vb1,Vf)
| ~ element_of_collection(Vb2,Vf)
| ~ element_of_set(Y,intersection_of_sets(Vb1,Vb2))
| subset_sets(f6(X,Vf,Y,Vb1,Vb2),intersection_of_sets(Vb1,Vb2)) ) ).
cnf(basis_for_topology_32,axiom,
( basis(X,Vf)
| ~ equal_sets(union_of_members(Vf),X)
| element_of_set(f7(X,Vf),X) ) ).
cnf(basis_for_topology_33,axiom,
( basis(X,Vf)
| ~ equal_sets(union_of_members(Vf),X)
| element_of_collection(f8(X,Vf),Vf) ) ).
cnf(basis_for_topology_34,axiom,
( basis(X,Vf)
| ~ equal_sets(union_of_members(Vf),X)
| element_of_collection(f9(X,Vf),Vf) ) ).
cnf(basis_for_topology_35,axiom,
( basis(X,Vf)
| ~ equal_sets(union_of_members(Vf),X)
| element_of_set(f7(X,Vf),intersection_of_sets(f8(X,Vf),f9(X,Vf))) ) ).
cnf(basis_for_topology_36,axiom,
( basis(X,Vf)
| ~ equal_sets(union_of_members(Vf),X)
| ~ element_of_set(f7(X,Vf),Uu9)
| ~ element_of_collection(Uu9,Vf)
| ~ subset_sets(Uu9,intersection_of_sets(f8(X,Vf),f9(X,Vf))) ) ).
%----Topology generated by a basis
cnf(topology_generated_37,axiom,
( ~ element_of_collection(U,top_of_basis(Vf))
| ~ element_of_set(X,U)
| element_of_set(X,f10(Vf,U,X)) ) ).
cnf(topology_generated_38,axiom,
( ~ element_of_collection(U,top_of_basis(Vf))
| ~ element_of_set(X,U)
| element_of_collection(f10(Vf,U,X),Vf) ) ).
cnf(topology_generated_39,axiom,
( ~ element_of_collection(U,top_of_basis(Vf))
| ~ element_of_set(X,U)
| subset_sets(f10(Vf,U,X),U) ) ).
cnf(topology_generated_40,axiom,
( element_of_collection(U,top_of_basis(Vf))
| element_of_set(f11(Vf,U),U) ) ).
cnf(topology_generated_41,axiom,
( element_of_collection(U,top_of_basis(Vf))
| ~ element_of_set(f11(Vf,U),Uu11)
| ~ element_of_collection(Uu11,Vf)
| ~ subset_sets(Uu11,U) ) ).
%----Subspace topology
cnf(subspace_topology_42,axiom,
( ~ element_of_collection(U,subspace_topology(X,Vt,Y))
| topological_space(X,Vt) ) ).
cnf(subspace_topology_43,axiom,
( ~ element_of_collection(U,subspace_topology(X,Vt,Y))
| subset_sets(Y,X) ) ).
cnf(subspace_topology_44,axiom,
( ~ element_of_collection(U,subspace_topology(X,Vt,Y))
| element_of_collection(f12(X,Vt,Y,U),Vt) ) ).
cnf(subspace_topology_45,axiom,
( ~ element_of_collection(U,subspace_topology(X,Vt,Y))
| equal_sets(U,intersection_of_sets(Y,f12(X,Vt,Y,U))) ) ).
cnf(subspace_topology_46,axiom,
( element_of_collection(U,subspace_topology(X,Vt,Y))
| ~ topological_space(X,Vt)
| ~ subset_sets(Y,X)
| ~ element_of_collection(Uu12,Vt)
| ~ equal_sets(U,intersection_of_sets(Y,Uu12)) ) ).
%----Interior of a set
cnf(interior_47,axiom,
( ~ element_of_set(U,interior(Y,X,Vt))
| topological_space(X,Vt) ) ).
cnf(interior_48,axiom,
( ~ element_of_set(U,interior(Y,X,Vt))
| subset_sets(Y,X) ) ).
cnf(interior_49,axiom,
( ~ element_of_set(U,interior(Y,X,Vt))
| element_of_set(U,f13(Y,X,Vt,U)) ) ).
cnf(interior_50,axiom,
( ~ element_of_set(U,interior(Y,X,Vt))
| subset_sets(f13(Y,X,Vt,U),Y) ) ).
cnf(interior_51,axiom,
( ~ element_of_set(U,interior(Y,X,Vt))
| open(f13(Y,X,Vt,U),X,Vt) ) ).
cnf(interior_52,axiom,
( element_of_set(U,interior(Y,X,Vt))
| ~ topological_space(X,Vt)
| ~ subset_sets(Y,X)
| ~ element_of_set(U,Uu13)
| ~ subset_sets(Uu13,Y)
| ~ open(Uu13,X,Vt) ) ).
%----Closure of a set
cnf(closure_53,axiom,
( ~ element_of_set(U,closure(Y,X,Vt))
| topological_space(X,Vt) ) ).
cnf(closure_54,axiom,
( ~ element_of_set(U,closure(Y,X,Vt))
| subset_sets(Y,X) ) ).
cnf(closure_55,axiom,
( ~ element_of_set(U,closure(Y,X,Vt))
| ~ subset_sets(Y,V)
| ~ closed(V,X,Vt)
| element_of_set(U,V) ) ).
cnf(closure_56,axiom,
( element_of_set(U,closure(Y,X,Vt))
| ~ topological_space(X,Vt)
| ~ subset_sets(Y,X)
| subset_sets(Y,f14(Y,X,Vt,U)) ) ).
cnf(closure_57,axiom,
( element_of_set(U,closure(Y,X,Vt))
| ~ topological_space(X,Vt)
| ~ subset_sets(Y,X)
| closed(f14(Y,X,Vt,U),X,Vt) ) ).
cnf(closure_58,axiom,
( element_of_set(U,closure(Y,X,Vt))
| ~ topological_space(X,Vt)
| ~ subset_sets(Y,X)
| ~ element_of_set(U,f14(Y,X,Vt,U)) ) ).
%----Neighborhood
cnf(neighborhood_59,axiom,
( ~ neighborhood(U,Y,X,Vt)
| topological_space(X,Vt) ) ).
cnf(neighborhood_60,axiom,
( ~ neighborhood(U,Y,X,Vt)
| open(U,X,Vt) ) ).
cnf(neighborhood_61,axiom,
( ~ neighborhood(U,Y,X,Vt)
| element_of_set(Y,U) ) ).
cnf(neighborhood_62,axiom,
( neighborhood(U,Y,X,Vt)
| ~ topological_space(X,Vt)
| ~ open(U,X,Vt)
| ~ element_of_set(Y,U) ) ).
%----Limit point
cnf(limit_point_63,axiom,
( ~ limit_point(Z,Y,X,Vt)
| topological_space(X,Vt) ) ).
cnf(limit_point_64,axiom,
( ~ limit_point(Z,Y,X,Vt