TPTP Problem File: SWX226+1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : SWX226+1 : TPTP v9.3.0. Released v9.3.0.
% Domain : Software Verification
% Problem : Find an untyped lambda term with a specific property
% Version : Especial.
% English :
% Refs : [CST26] Claessen et al. (2026), Email to Geoff Sutcliffe
% Source : [CST26]
% Names : Untyped_thm_why.p [CST26]
% Status : Theorem
% Rating : 1.00 v9.3.0
% Syntax : Number of formulae : 48 ( 39 unt; 0 def)
% Number of atoms : 63 ( 57 equ)
% Maximal formula atoms : 4 ( 1 avg)
% Number of connectives : 50 ( 35 ~; 1 |; 0 &)
% ( 1 <=>; 13 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 3 avg)
% Maximal term depth : 5 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 0 prp; 1-2 aty)
% Number of functors : 19 ( 19 usr; 8 con; 0-4 aty)
% Number of variables : 67 ( 65 !; 2 ?)
% SPC : FOF_THM_RFO_SEQ
% Comments :
%------------------------------------------------------------------------------
fof(axiom_001,axiom,
! [X,X2] : proj1(x(X,X2)) = X ).
fof(axiom_002,axiom,
! [X,X2] : proj2(x(X,X2)) = X2 ).
fof(axiom_003,axiom,
! [X,X2] : x(X,X2) != theVar ).
fof(axiom_004,axiom,
! [X,X2] : x(X,X2) != k ).
fof(axiom_005,axiom,
! [X,X2] : x(X,X2) != i ).
fof(axiom_006,axiom,
! [X,X2] : x(X,X2) != s ).
fof(axiom_007,axiom,
! [X,X2] : x(X,X2) != b ).
fof(axiom_008,axiom,
! [X,X2] : x(X,X2) != c ).
fof(axiom_009,axiom,
theVar != k ).
fof(axiom_010,axiom,
theVar != i ).
fof(axiom_011,axiom,
theVar != s ).
fof(axiom_012,axiom,
theVar != b ).
fof(axiom_013,axiom,
theVar != c ).
fof(axiom_014,axiom,
k != i ).
fof(axiom_015,axiom,
k != s ).
fof(axiom_016,axiom,
k != b ).
fof(axiom_017,axiom,
k != c ).
fof(axiom_018,axiom,
i != s ).
fof(axiom_019,axiom,
i != b ).
fof(axiom_020,axiom,
i != c ).
fof(axiom_021,axiom,
s != b ).
fof(axiom_022,axiom,
s != c ).
fof(axiom_023,axiom,
b != c ).
fof(axiom_024,axiom,
! [X] : proj1Suc(suc(X)) = X ).
fof(axiom_025,axiom,
! [X] : suc(X) != z ).
fof(axiom_026,axiom,
! [X] : proj1Just(just(X)) = X ).
fof(axiom_027,axiom,
! [X] : nothing != just(X) ).
fof(axiom_028,axiom,
! [Y,Z] : fail(Y,Z) = par(Y,Z,step(Y),step(Z)) ).
fof(axiom_029,axiom,
! [X,Y] : par(X,Y,nothing,nothing) = nothing ).
fof(axiom_030,axiom,
! [X,Y,U_red] : par(X,Y,nothing,just(U_red)) = just(x(X,U_red)) ).
fof(axiom_031,axiom,
! [X,Y,T_red] : par(X,Y,just(T_red),nothing) = just(x(T_red,Y)) ).
fof(axiom_032,axiom,
! [X,Y,T_red,U_red2] : par(X,Y,just(T_red),just(U_red2)) = just(x(T_red,U_red2)) ).
fof(axiom_033,axiom,
! [X] :
( X != x(proj1(X),proj2(X))
=> step(X) = nothing ) ).
fof(axiom_034,axiom,
! [Y,Z] :
( Y != x(proj1(Y),proj2(Y))
=> ( Y != i
=> step(x(Y,Z)) = fail(Y,Z) ) ) ).
fof(axiom_035,axiom,
! [Z,X2,G] :
( X2 != x(proj1(X2),proj2(X2))
=> ( X2 != k
=> step(x(x(X2,G),Z)) = fail(x(X2,G),Z) ) ) ).
fof(axiom_036,axiom,
! [Z,G,X3,F] :
( X3 != s
=> ( X3 != b
=> ( X3 != c
=> step(x(x(x(X3,F),G),Z)) = fail(x(x(X3,F),G),Z) ) ) ) ).
fof(axiom_037,axiom,
! [Z,G,F] : step(x(x(x(s,F),G),Z)) = just(x(x(F,Z),x(G,Z))) ).
fof(axiom_038,axiom,
! [Z,G,F] : step(x(x(x(b,F),G),Z)) = just(x(F,x(G,Z))) ).
fof(axiom_039,axiom,
! [Z,G,F] : step(x(x(x(c,F),G),Z)) = just(x(x(F,Z),G)) ).
fof(axiom_040,axiom,
! [Z,G] : step(x(x(k,G),Z)) = just(G) ).
fof(axiom_041,axiom,
! [Z] : step(x(i,Z)) = just(Z) ).
fof(axiom_042,axiom,
! [X] :
( X != x(proj1(X),proj2(X))
=> ( X != theVar
=> ~ cheating(X) ) ) ).
fof(axiom_043,axiom,
! [A,B] :
( cheating(x(A,B))
<=> ( cheating(A)
| cheating(B) ) ) ).
fof(axiom_044,axiom,
cheating(theVar) ).
fof(axiom_045,axiom,
! [Y,N] :
( step(Y) = nothing
=> astep(suc(N),Y) = nothing ) ).
fof(axiom_046,axiom,
! [Y,N,U] :
( step(Y) = just(U)
=> astep(suc(N),Y) = astep(N,U) ) ).
fof(axiom_047,axiom,
! [Y] : astep(z,Y) = just(Y) ).
fof(goal_048,conjecture,
? [N,Y] :
~ ( astep(N,x(Y,theVar)) = just(x(theVar,x(Y,theVar)))
=> cheating(Y) ) ).
%------------------------------------------------------------------------------