## TPTP Problem File: SYO560^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SYO560^1 : TPTP v7.1.0. Released v5.2.0.
% Domain   : Syntactic
% Problem  : Choice on \$o>\$o applied to choice on \$o is identity or constant
% Version  : Especial.
% English  :

% Refs     : [Bro11] Brown (2011), Email to Geoff Sutcliffe
% Source   : [Bro11]
% Names    :  CHOICE3 [Bro11]

% Status   : Theorem
% Rating   : 0.38 v7.1.0, 0.43 v7.0.0, 0.38 v6.4.0, 0.43 v6.3.0, 0.50 v6.2.0, 0.67 v6.0.0, 0.50 v5.5.0, 0.40 v5.4.0, 0.75 v5.2.0
% Syntax   : Number of formulae    :    9 (   0 unit;   3 type;   0 defn)
%            Number of atoms       :   19 (   0 equality;   9 variable)
%            Maximal formula depth :    5 (   4 average)
%            Number of connectives :   13 (   0   ~;   0   |;   0   &;  11   @)
%                                         (   0 <=>;   2  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of type conns  :   12 (  12   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :    6 (   3   :;   0   =)
%            Number of variables   :    7 (   2 sgn;   2   !;   2   ?;   3   ^)
%                                         (   7   :;   0  !>;   0  ?*)
%                                         (   0  @-;   0  @+)
% SPC      : TH0_THM_NEQ_NAR

% Comments : Assume epso and epsoo are choice operators on \$o and \$o>\$o,
%            respectively. epso can also be viewed as a predicate on \$o>\$o,
%            so we can apply epsoo to epso. The term (epsoo @ epso) is of
%            type \$o>\$o, and cannot be negation. If a predicate q is true for
%            all the other three functions in \$o>\$o, then q is true for
%            (epsoo @ epso). Proof Sketch: If the conjecture were not true,
%            then (epsoo @ epso) would be the negation function. However,
%            negation is the only function \$o>\$o for which we are certain
%            epso returns \$false.
%------------------------------------------------------------------------------
thf(epso,type,(
epso: ( \$o > \$o ) > \$o )).

thf(choiceaxo,axiom,(
! [P: \$o > \$o] :
( ? [X: \$o] :
( P @ X )
=> ( P @ ( epso @ P ) ) ) )).

thf(epsoo,type,(
epsoo: ( ( \$o > \$o ) > \$o ) > \$o > \$o )).

thf(choiceaxoo,axiom,(
! [P: ( \$o > \$o ) > \$o] :
( ? [X: \$o > \$o] :
( P @ X )
=> ( P @ ( epsoo @ P ) ) ) )).

thf(q,type,(
q: ( \$o > \$o ) > \$o )).

thf(qkt,axiom,
( q
@ ^ [X: \$o] : \$true )).

thf(qkf,axiom,
( q
@ ^ [X: \$o] : \$false )).

thf(qid,axiom,
( q
@ ^ [X: \$o] : X )).

thf(c,conjecture,
( q @ ( epsoo @ epso ) )).

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