TSTP Solution File: PUZ047+1 by Z3---4.8.9.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Z3---4.8.9.0
% Problem  : PUZ047+1 : TPTP v8.1.0. Released v2.5.0.
% Transfm  : none
% Format   : tptp
% Command  : z3_tptp -proof -model -t:%d -file:%s

% Computer : n002.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Sun Sep 18 14:11:06 EDT 2022

% Result   : Theorem 0.19s 0.41s
% Output   : Proof 0.19s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   14
%            Number of leaves      :   41
% Syntax   : Number of formulae    :  100 (  27 unt;   8 typ;   0 def)
%            Number of atoms       :  421 (   0 equ)
%            Maximal formula atoms :   60 (   4 avg)
%            Number of connectives :  531 ( 212   ~; 189   |;  70   &)
%                                         (  30 <=>;  30  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   22 (   5 avg)
%            Maximal term depth    :    8 (   1 avg)
%            Number of FOOLs       :   10 (  10 fml;   0 var)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :    9 (   5   >;   4   *;   0   +;   0  <<)
%            Number of predicates  :    4 (   2 usr;   1 prp; 0-5 aty)
%            Number of functors    :    7 (   7 usr;   3 con; 0-1 aty)
%            Number of variables   :  252 ( 227   !;  13   ?; 252   :)

% Comments : 
%------------------------------------------------------------------------------
tff(p_type,type,
    p: ( $i * $i * $i * $i * $i ) > $o ).

tff(take_goat_type,type,
    take_goat: $i > $i ).

tff(go_alone_type,type,
    go_alone: $i > $i ).

tff(take_wolf_type,type,
    take_wolf: $i > $i ).

tff(take_cabbage_type,type,
    take_cabbage: $i > $i ).

tff(start_type,type,
    start: $i ).

tff(north_type,type,
    north: $i ).

tff(south_type,type,
    south: $i ).

tff(1,plain,
    ^ [X: $i,Y: $i,U: $i] :
      refl(
        ( ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) )
      <=> ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) ) )),
    inference(bind,[status(th)],]) ).

tff(2,plain,
    ( ! [X: $i,Y: $i,U: $i] :
        ( ~ p(south,X,south,Y,U)
        | p(north,X,north,Y,take_goat(U)) )
  <=> ! [X: $i,Y: $i,U: $i] :
        ( ~ p(south,X,south,Y,U)
        | p(north,X,north,Y,take_goat(U)) ) ),
    inference(quant_intro,[status(thm)],[1]) ).

tff(3,plain,
    ( ! [X: $i,Y: $i,U: $i] :
        ( ~ p(south,X,south,Y,U)
        | p(north,X,north,Y,take_goat(U)) )
  <=> ! [X: $i,Y: $i,U: $i] :
        ( ~ p(south,X,south,Y,U)
        | p(north,X,north,Y,take_goat(U)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(4,plain,
    ( ~ ( ( p(south,south,south,south,start)
          & ! [T: $i] :
              ( p(south,north,south,north,T)
             => p(north,north,south,north,go_alone(T)) )
          & ! [T1: $i] :
              ( p(north,north,south,north,T1)
             => p(south,north,south,north,go_alone(T1)) )
          & ! [T2: $i] :
              ( p(south,south,north,south,T2)
             => p(north,south,north,south,go_alone(T2)) )
          & ! [T3: $i] :
              ( p(north,south,north,south,T3)
             => p(south,south,north,south,go_alone(T3)) )
          & ! [T4: $i] :
              ( p(south,south,south,north,T4)
             => p(north,north,south,north,take_wolf(T4)) )
          & ! [T5: $i] :
              ( p(north,north,south,north,T5)
             => p(south,south,south,north,take_wolf(T5)) )
          & ! [T6: $i] :
              ( p(south,south,north,south,T6)
             => p(north,north,north,south,take_wolf(T6)) )
          & ! [T7: $i] :
              ( p(north,north,north,south,T7)
             => p(south,south,north,south,take_wolf(T7)) )
          & ! [X: $i,Y: $i,U: $i] :
              ( p(south,X,south,Y,U)
             => p(north,X,north,Y,take_goat(U)) )
          & ! [X1: $i,Y1: $i,V: $i] :
              ( p(north,X1,north,Y1,V)
             => p(south,X1,south,Y1,take_goat(V)) )
          & ! [T8: $i] :
              ( p(south,north,south,south,T8)
             => p(north,north,south,north,take_cabbage(T8)) )
          & ! [T9: $i] :
              ( p(north,north,south,north,T9)
             => p(south,north,south,south,take_cabbage(T9)) )
          & ! [U1: $i] :
              ( p(south,south,north,south,U1)
             => p(north,south,north,north,take_cabbage(U1)) )
          & ! [V1: $i] :
              ( p(north,south,north,north,V1)
             => p(south,south,north,south,take_cabbage(V1)) ) )
       => ? [Z: $i] : p(north,north,north,north,Z) )
  <=> ~ ( ~ ( p(south,south,south,south,start)
            & ! [T: $i] :
                ( ~ p(south,north,south,north,T)
                | p(north,north,south,north,go_alone(T)) )
            & ! [T1: $i] :
                ( ~ p(north,north,south,north,T1)
                | p(south,north,south,north,go_alone(T1)) )
            & ! [T2: $i] :
                ( ~ p(south,south,north,south,T2)
                | p(north,south,north,south,go_alone(T2)) )
            & ! [T3: $i] :
                ( ~ p(north,south,north,south,T3)
                | p(south,south,north,south,go_alone(T3)) )
            & ! [T4: $i] :
                ( ~ p(south,south,south,north,T4)
                | p(north,north,south,north,take_wolf(T4)) )
            & ! [T5: $i] :
                ( ~ p(north,north,south,north,T5)
                | p(south,south,south,north,take_wolf(T5)) )
            & ! [T6: $i] :
                ( ~ p(south,south,north,south,T6)
                | p(north,north,north,south,take_wolf(T6)) )
            & ! [T7: $i] :
                ( ~ p(north,north,north,south,T7)
                | p(south,south,north,south,take_wolf(T7)) )
            & ! [X: $i,Y: $i,U: $i] :
                ( ~ p(south,X,south,Y,U)
                | p(north,X,north,Y,take_goat(U)) )
            & ! [X1: $i,Y1: $i,V: $i] :
                ( ~ p(north,X1,north,Y1,V)
                | p(south,X1,south,Y1,take_goat(V)) )
            & ! [T8: $i] :
                ( ~ p(south,north,south,south,T8)
                | p(north,north,south,north,take_cabbage(T8)) )
            & ! [T9: $i] :
                ( ~ p(north,north,south,north,T9)
                | p(south,north,south,south,take_cabbage(T9)) )
            & ! [U1: $i] :
                ( ~ p(south,south,north,south,U1)
                | p(north,south,north,north,take_cabbage(U1)) )
            & ! [V1: $i] :
                ( ~ p(north,south,north,north,V1)
                | p(south,south,north,south,take_cabbage(V1)) ) )
        | ? [Z: $i] : p(north,north,north,north,Z) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(5,axiom,
    ~ ( ( p(south,south,south,south,start)
        & ! [T: $i] :
            ( p(south,north,south,north,T)
           => p(north,north,south,north,go_alone(T)) )
        & ! [T1: $i] :
            ( p(north,north,south,north,T1)
           => p(south,north,south,north,go_alone(T1)) )
        & ! [T2: $i] :
            ( p(south,south,north,south,T2)
           => p(north,south,north,south,go_alone(T2)) )
        & ! [T3: $i] :
            ( p(north,south,north,south,T3)
           => p(south,south,north,south,go_alone(T3)) )
        & ! [T4: $i] :
            ( p(south,south,south,north,T4)
           => p(north,north,south,north,take_wolf(T4)) )
        & ! [T5: $i] :
            ( p(north,north,south,north,T5)
           => p(south,south,south,north,take_wolf(T5)) )
        & ! [T6: $i] :
            ( p(south,south,north,south,T6)
           => p(north,north,north,south,take_wolf(T6)) )
        & ! [T7: $i] :
            ( p(north,north,north,south,T7)
           => p(south,south,north,south,take_wolf(T7)) )
        & ! [X: $i,Y: $i,U: $i] :
            ( p(south,X,south,Y,U)
           => p(north,X,north,Y,take_goat(U)) )
        & ! [X1: $i,Y1: $i,V: $i] :
            ( p(north,X1,north,Y1,V)
           => p(south,X1,south,Y1,take_goat(V)) )
        & ! [T8: $i] :
            ( p(south,north,south,south,T8)
           => p(north,north,south,north,take_cabbage(T8)) )
        & ! [T9: $i] :
            ( p(north,north,south,north,T9)
           => p(south,north,south,south,take_cabbage(T9)) )
        & ! [U1: $i] :
            ( p(south,south,north,south,U1)
           => p(north,south,north,north,take_cabbage(U1)) )
        & ! [V1: $i] :
            ( p(north,south,north,north,V1)
           => p(south,south,north,south,take_cabbage(V1)) ) )
     => ? [Z: $i] : p(north,north,north,north,Z) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',thm100) ).

tff(6,plain,
    ~ ( ~ ( p(south,south,south,south,start)
          & ! [T: $i] :
              ( ~ p(south,north,south,north,T)
              | p(north,north,south,north,go_alone(T)) )
          & ! [T1: $i] :
              ( ~ p(north,north,south,north,T1)
              | p(south,north,south,north,go_alone(T1)) )
          & ! [T2: $i] :
              ( ~ p(south,south,north,south,T2)
              | p(north,south,north,south,go_alone(T2)) )
          & ! [T3: $i] :
              ( ~ p(north,south,north,south,T3)
              | p(south,south,north,south,go_alone(T3)) )
          & ! [T4: $i] :
              ( ~ p(south,south,south,north,T4)
              | p(north,north,south,north,take_wolf(T4)) )
          & ! [T5: $i] :
              ( ~ p(north,north,south,north,T5)
              | p(south,south,south,north,take_wolf(T5)) )
          & ! [T6: $i] :
              ( ~ p(south,south,north,south,T6)
              | p(north,north,north,south,take_wolf(T6)) )
          & ! [T7: $i] :
              ( ~ p(north,north,north,south,T7)
              | p(south,south,north,south,take_wolf(T7)) )
          & ! [X: $i,Y: $i,U: $i] :
              ( ~ p(south,X,south,Y,U)
              | p(north,X,north,Y,take_goat(U)) )
          & ! [X1: $i,Y1: $i,V: $i] :
              ( ~ p(north,X1,north,Y1,V)
              | p(south,X1,south,Y1,take_goat(V)) )
          & ! [T8: $i] :
              ( ~ p(south,north,south,south,T8)
              | p(north,north,south,north,take_cabbage(T8)) )
          & ! [T9: $i] :
              ( ~ p(north,north,south,north,T9)
              | p(south,north,south,south,take_cabbage(T9)) )
          & ! [U1: $i] :
              ( ~ p(south,south,north,south,U1)
              | p(north,south,north,north,take_cabbage(U1)) )
          & ! [V1: $i] :
              ( ~ p(north,south,north,north,V1)
              | p(south,south,north,south,take_cabbage(V1)) ) )
      | ? [Z: $i] : p(north,north,north,north,Z) ),
    inference(modus_ponens,[status(thm)],[5,4]) ).

tff(7,plain,
    ( p(south,south,south,south,start)
    & ! [T: $i] :
        ( ~ p(south,north,south,north,T)
        | p(north,north,south,north,go_alone(T)) )
    & ! [T1: $i] :
        ( ~ p(north,north,south,north,T1)
        | p(south,north,south,north,go_alone(T1)) )
    & ! [T2: $i] :
        ( ~ p(south,south,north,south,T2)
        | p(north,south,north,south,go_alone(T2)) )
    & ! [T3: $i] :
        ( ~ p(north,south,north,south,T3)
        | p(south,south,north,south,go_alone(T3)) )
    & ! [T4: $i] :
        ( ~ p(south,south,south,north,T4)
        | p(north,north,south,north,take_wolf(T4)) )
    & ! [T5: $i] :
        ( ~ p(north,north,south,north,T5)
        | p(south,south,south,north,take_wolf(T5)) )
    & ! [T6: $i] :
        ( ~ p(south,south,north,south,T6)
        | p(north,north,north,south,take_wolf(T6)) )
    & ! [T7: $i] :
        ( ~ p(north,north,north,south,T7)
        | p(south,south,north,south,take_wolf(T7)) )
    & ! [X: $i,Y: $i,U: $i] :
        ( ~ p(south,X,south,Y,U)
        | p(north,X,north,Y,take_goat(U)) )
    & ! [X1: $i,Y1: $i,V: $i] :
        ( ~ p(north,X1,north,Y1,V)
        | p(south,X1,south,Y1,take_goat(V)) )
    & ! [T8: $i] :
        ( ~ p(south,north,south,south,T8)
        | p(north,north,south,north,take_cabbage(T8)) )
    & ! [T9: $i] :
        ( ~ p(north,north,south,north,T9)
        | p(south,north,south,south,take_cabbage(T9)) )
    & ! [U1: $i] :
        ( ~ p(south,south,north,south,U1)
        | p(north,south,north,north,take_cabbage(U1)) )
    & ! [V1: $i] :
        ( ~ p(north,south,north,north,V1)
        | p(south,south,north,south,take_cabbage(V1)) ) ),
    inference(or_elim,[status(thm)],[6]) ).

tff(8,plain,
    ! [X: $i,Y: $i,U: $i] :
      ( ~ p(south,X,south,Y,U)
      | p(north,X,north,Y,take_goat(U)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(9,plain,
    ! [X: $i,Y: $i,U: $i] :
      ( ~ p(south,X,south,Y,U)
      | p(north,X,north,Y,take_goat(U)) ),
    inference(modus_ponens,[status(thm)],[8,3]) ).

tff(10,plain,
    ! [X: $i,Y: $i,U: $i] :
      ( ~ p(south,X,south,Y,U)
      | p(north,X,north,Y,take_goat(U)) ),
    inference(skolemize,[status(sab)],[9]) ).

tff(11,plain,
    ! [X: $i,Y: $i,U: $i] :
      ( ~ p(south,X,south,Y,U)
      | p(north,X,north,Y,take_goat(U)) ),
    inference(modus_ponens,[status(thm)],[10,2]) ).

tff(12,plain,
    ( p(south,south,south,south,start)
  <=> p(south,south,south,south,start) ),
    inference(rewrite,[status(thm)],]) ).

tff(13,plain,
    p(south,south,south,south,start),
    inference(and_elim,[status(thm)],[7]) ).

tff(14,plain,
    p(south,south,south,south,start),
    inference(modus_ponens,[status(thm)],[13,12]) ).

tff(15,plain,
    ( ( ~ ! [X: $i,Y: $i,U: $i] :
            ( ~ p(south,X,south,Y,U)
            | p(north,X,north,Y,take_goat(U)) )
      | ~ p(south,south,south,south,start)
      | p(north,south,north,south,take_goat(start)) )
  <=> ( ~ ! [X: $i,Y: $i,U: $i] :
            ( ~ p(south,X,south,Y,U)
            | p(north,X,north,Y,take_goat(U)) )
      | ~ p(south,south,south,south,start)
      | p(north,south,north,south,take_goat(start)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(16,plain,
    ( ~ ! [X: $i,Y: $i,U: $i] :
          ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) )
    | ~ p(south,south,south,south,start)
    | p(north,south,north,south,take_goat(start)) ),
    inference(quant_inst,[status(thm)],]) ).

tff(17,plain,
    ( ~ ! [X: $i,Y: $i,U: $i] :
          ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) )
    | ~ p(south,south,south,south,start)
    | p(north,south,north,south,take_goat(start)) ),
    inference(modus_ponens,[status(thm)],[16,15]) ).

tff(18,plain,
    p(north,south,north,south,take_goat(start)),
    inference(unit_resolution,[status(thm)],[17,14,11]) ).

tff(19,plain,
    ^ [T3: $i] :
      refl(
        ( ( ~ p(north,south,north,south,T3)
          | p(south,south,north,south,go_alone(T3)) )
      <=> ( ~ p(north,south,north,south,T3)
          | p(south,south,north,south,go_alone(T3)) ) )),
    inference(bind,[status(th)],]) ).

tff(20,plain,
    ( ! [T3: $i] :
        ( ~ p(north,south,north,south,T3)
        | p(south,south,north,south,go_alone(T3)) )
  <=> ! [T3: $i] :
        ( ~ p(north,south,north,south,T3)
        | p(south,south,north,south,go_alone(T3)) ) ),
    inference(quant_intro,[status(thm)],[19]) ).

tff(21,plain,
    ( ! [T3: $i] :
        ( ~ p(north,south,north,south,T3)
        | p(south,south,north,south,go_alone(T3)) )
  <=> ! [T3: $i] :
        ( ~ p(north,south,north,south,T3)
        | p(south,south,north,south,go_alone(T3)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(22,plain,
    ! [T3: $i] :
      ( ~ p(north,south,north,south,T3)
      | p(south,south,north,south,go_alone(T3)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(23,plain,
    ! [T3: $i] :
      ( ~ p(north,south,north,south,T3)
      | p(south,south,north,south,go_alone(T3)) ),
    inference(modus_ponens,[status(thm)],[22,21]) ).

tff(24,plain,
    ! [T3: $i] :
      ( ~ p(north,south,north,south,T3)
      | p(south,south,north,south,go_alone(T3)) ),
    inference(skolemize,[status(sab)],[23]) ).

tff(25,plain,
    ! [T3: $i] :
      ( ~ p(north,south,north,south,T3)
      | p(south,south,north,south,go_alone(T3)) ),
    inference(modus_ponens,[status(thm)],[24,20]) ).

tff(26,plain,
    ( ( ~ ! [T3: $i] :
            ( ~ p(north,south,north,south,T3)
            | p(south,south,north,south,go_alone(T3)) )
      | ~ p(north,south,north,south,take_goat(start))
      | p(south,south,north,south,go_alone(take_goat(start))) )
  <=> ( ~ ! [T3: $i] :
            ( ~ p(north,south,north,south,T3)
            | p(south,south,north,south,go_alone(T3)) )
      | ~ p(north,south,north,south,take_goat(start))
      | p(south,south,north,south,go_alone(take_goat(start))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(27,plain,
    ( ~ ! [T3: $i] :
          ( ~ p(north,south,north,south,T3)
          | p(south,south,north,south,go_alone(T3)) )
    | ~ p(north,south,north,south,take_goat(start))
    | p(south,south,north,south,go_alone(take_goat(start))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(28,plain,
    ( ~ ! [T3: $i] :
          ( ~ p(north,south,north,south,T3)
          | p(south,south,north,south,go_alone(T3)) )
    | ~ p(north,south,north,south,take_goat(start))
    | p(south,south,north,south,go_alone(take_goat(start))) ),
    inference(modus_ponens,[status(thm)],[27,26]) ).

tff(29,plain,
    p(south,south,north,south,go_alone(take_goat(start))),
    inference(unit_resolution,[status(thm)],[28,25,18]) ).

tff(30,plain,
    ^ [U1: $i] :
      refl(
        ( ( ~ p(south,south,north,south,U1)
          | p(north,south,north,north,take_cabbage(U1)) )
      <=> ( ~ p(south,south,north,south,U1)
          | p(north,south,north,north,take_cabbage(U1)) ) )),
    inference(bind,[status(th)],]) ).

tff(31,plain,
    ( ! [U1: $i] :
        ( ~ p(south,south,north,south,U1)
        | p(north,south,north,north,take_cabbage(U1)) )
  <=> ! [U1: $i] :
        ( ~ p(south,south,north,south,U1)
        | p(north,south,north,north,take_cabbage(U1)) ) ),
    inference(quant_intro,[status(thm)],[30]) ).

tff(32,plain,
    ( ! [U1: $i] :
        ( ~ p(south,south,north,south,U1)
        | p(north,south,north,north,take_cabbage(U1)) )
  <=> ! [U1: $i] :
        ( ~ p(south,south,north,south,U1)
        | p(north,south,north,north,take_cabbage(U1)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(33,plain,
    ! [U1: $i] :
      ( ~ p(south,south,north,south,U1)
      | p(north,south,north,north,take_cabbage(U1)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(34,plain,
    ! [U1: $i] :
      ( ~ p(south,south,north,south,U1)
      | p(north,south,north,north,take_cabbage(U1)) ),
    inference(modus_ponens,[status(thm)],[33,32]) ).

tff(35,plain,
    ! [U1: $i] :
      ( ~ p(south,south,north,south,U1)
      | p(north,south,north,north,take_cabbage(U1)) ),
    inference(skolemize,[status(sab)],[34]) ).

tff(36,plain,
    ! [U1: $i] :
      ( ~ p(south,south,north,south,U1)
      | p(north,south,north,north,take_cabbage(U1)) ),
    inference(modus_ponens,[status(thm)],[35,31]) ).

tff(37,plain,
    ( ( ~ ! [U1: $i] :
            ( ~ p(south,south,north,south,U1)
            | p(north,south,north,north,take_cabbage(U1)) )
      | ~ p(south,south,north,south,go_alone(take_goat(start)))
      | p(north,south,north,north,take_cabbage(go_alone(take_goat(start)))) )
  <=> ( ~ ! [U1: $i] :
            ( ~ p(south,south,north,south,U1)
            | p(north,south,north,north,take_cabbage(U1)) )
      | ~ p(south,south,north,south,go_alone(take_goat(start)))
      | p(north,south,north,north,take_cabbage(go_alone(take_goat(start)))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(38,plain,
    ( ~ ! [U1: $i] :
          ( ~ p(south,south,north,south,U1)
          | p(north,south,north,north,take_cabbage(U1)) )
    | ~ p(south,south,north,south,go_alone(take_goat(start)))
    | p(north,south,north,north,take_cabbage(go_alone(take_goat(start)))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(39,plain,
    ( ~ ! [U1: $i] :
          ( ~ p(south,south,north,south,U1)
          | p(north,south,north,north,take_cabbage(U1)) )
    | ~ p(south,south,north,south,go_alone(take_goat(start)))
    | p(north,south,north,north,take_cabbage(go_alone(take_goat(start)))) ),
    inference(modus_ponens,[status(thm)],[38,37]) ).

tff(40,plain,
    p(north,south,north,north,take_cabbage(go_alone(take_goat(start)))),
    inference(unit_resolution,[status(thm)],[39,36,29]) ).

tff(41,plain,
    ^ [X1: $i,Y1: $i,V: $i] :
      refl(
        ( ( ~ p(north,X1,north,Y1,V)
          | p(south,X1,south,Y1,take_goat(V)) )
      <=> ( ~ p(north,X1,north,Y1,V)
          | p(south,X1,south,Y1,take_goat(V)) ) )),
    inference(bind,[status(th)],]) ).

tff(42,plain,
    ( ! [X1: $i,Y1: $i,V: $i] :
        ( ~ p(north,X1,north,Y1,V)
        | p(south,X1,south,Y1,take_goat(V)) )
  <=> ! [X1: $i,Y1: $i,V: $i] :
        ( ~ p(north,X1,north,Y1,V)
        | p(south,X1,south,Y1,take_goat(V)) ) ),
    inference(quant_intro,[status(thm)],[41]) ).

tff(43,plain,
    ( ! [X1: $i,Y1: $i,V: $i] :
        ( ~ p(north,X1,north,Y1,V)
        | p(south,X1,south,Y1,take_goat(V)) )
  <=> ! [X1: $i,Y1: $i,V: $i] :
        ( ~ p(north,X1,north,Y1,V)
        | p(south,X1,south,Y1,take_goat(V)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(44,plain,
    ! [X1: $i,Y1: $i,V: $i] :
      ( ~ p(north,X1,north,Y1,V)
      | p(south,X1,south,Y1,take_goat(V)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(45,plain,
    ! [X1: $i,Y1: $i,V: $i] :
      ( ~ p(north,X1,north,Y1,V)
      | p(south,X1,south,Y1,take_goat(V)) ),
    inference(modus_ponens,[status(thm)],[44,43]) ).

tff(46,plain,
    ! [X1: $i,Y1: $i,V: $i] :
      ( ~ p(north,X1,north,Y1,V)
      | p(south,X1,south,Y1,take_goat(V)) ),
    inference(skolemize,[status(sab)],[45]) ).

tff(47,plain,
    ! [X1: $i,Y1: $i,V: $i] :
      ( ~ p(north,X1,north,Y1,V)
      | p(south,X1,south,Y1,take_goat(V)) ),
    inference(modus_ponens,[status(thm)],[46,42]) ).

tff(48,plain,
    ( ( ~ ! [X1: $i,Y1: $i,V: $i] :
            ( ~ p(north,X1,north,Y1,V)
            | p(south,X1,south,Y1,take_goat(V)) )
      | ~ p(north,south,north,north,take_cabbage(go_alone(take_goat(start))))
      | p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start))))) )
  <=> ( ~ ! [X1: $i,Y1: $i,V: $i] :
            ( ~ p(north,X1,north,Y1,V)
            | p(south,X1,south,Y1,take_goat(V)) )
      | ~ p(north,south,north,north,take_cabbage(go_alone(take_goat(start))))
      | p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start))))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(49,plain,
    ( ~ ! [X1: $i,Y1: $i,V: $i] :
          ( ~ p(north,X1,north,Y1,V)
          | p(south,X1,south,Y1,take_goat(V)) )
    | ~ p(north,south,north,north,take_cabbage(go_alone(take_goat(start))))
    | p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start))))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(50,plain,
    ( ~ ! [X1: $i,Y1: $i,V: $i] :
          ( ~ p(north,X1,north,Y1,V)
          | p(south,X1,south,Y1,take_goat(V)) )
    | ~ p(north,south,north,north,take_cabbage(go_alone(take_goat(start))))
    | p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start))))) ),
    inference(modus_ponens,[status(thm)],[49,48]) ).

tff(51,plain,
    p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start))))),
    inference(unit_resolution,[status(thm)],[50,47,40]) ).

tff(52,plain,
    ^ [T4: $i] :
      refl(
        ( ( ~ p(south,south,south,north,T4)
          | p(north,north,south,north,take_wolf(T4)) )
      <=> ( ~ p(south,south,south,north,T4)
          | p(north,north,south,north,take_wolf(T4)) ) )),
    inference(bind,[status(th)],]) ).

tff(53,plain,
    ( ! [T4: $i] :
        ( ~ p(south,south,south,north,T4)
        | p(north,north,south,north,take_wolf(T4)) )
  <=> ! [T4: $i] :
        ( ~ p(south,south,south,north,T4)
        | p(north,north,south,north,take_wolf(T4)) ) ),
    inference(quant_intro,[status(thm)],[52]) ).

tff(54,plain,
    ( ! [T4: $i] :
        ( ~ p(south,south,south,north,T4)
        | p(north,north,south,north,take_wolf(T4)) )
  <=> ! [T4: $i] :
        ( ~ p(south,south,south,north,T4)
        | p(north,north,south,north,take_wolf(T4)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(55,plain,
    ! [T4: $i] :
      ( ~ p(south,south,south,north,T4)
      | p(north,north,south,north,take_wolf(T4)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(56,plain,
    ! [T4: $i] :
      ( ~ p(south,south,south,north,T4)
      | p(north,north,south,north,take_wolf(T4)) ),
    inference(modus_ponens,[status(thm)],[55,54]) ).

tff(57,plain,
    ! [T4: $i] :
      ( ~ p(south,south,south,north,T4)
      | p(north,north,south,north,take_wolf(T4)) ),
    inference(skolemize,[status(sab)],[56]) ).

tff(58,plain,
    ! [T4: $i] :
      ( ~ p(south,south,south,north,T4)
      | p(north,north,south,north,take_wolf(T4)) ),
    inference(modus_ponens,[status(thm)],[57,53]) ).

tff(59,plain,
    ( ( ~ ! [T4: $i] :
            ( ~ p(south,south,south,north,T4)
            | p(north,north,south,north,take_wolf(T4)) )
      | ~ p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start)))))
      | p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))) )
  <=> ( ~ ! [T4: $i] :
            ( ~ p(south,south,south,north,T4)
            | p(north,north,south,north,take_wolf(T4)) )
      | ~ p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start)))))
      | p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(60,plain,
    ( ~ ! [T4: $i] :
          ( ~ p(south,south,south,north,T4)
          | p(north,north,south,north,take_wolf(T4)) )
    | ~ p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start)))))
    | p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(61,plain,
    ( ~ ! [T4: $i] :
          ( ~ p(south,south,south,north,T4)
          | p(north,north,south,north,take_wolf(T4)) )
    | ~ p(south,south,south,north,take_goat(take_cabbage(go_alone(take_goat(start)))))
    | p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))) ),
    inference(modus_ponens,[status(thm)],[60,59]) ).

tff(62,plain,
    p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))),
    inference(unit_resolution,[status(thm)],[61,58,51]) ).

tff(63,plain,
    ^ [T1: $i] :
      refl(
        ( ( ~ p(north,north,south,north,T1)
          | p(south,north,south,north,go_alone(T1)) )
      <=> ( ~ p(north,north,south,north,T1)
          | p(south,north,south,north,go_alone(T1)) ) )),
    inference(bind,[status(th)],]) ).

tff(64,plain,
    ( ! [T1: $i] :
        ( ~ p(north,north,south,north,T1)
        | p(south,north,south,north,go_alone(T1)) )
  <=> ! [T1: $i] :
        ( ~ p(north,north,south,north,T1)
        | p(south,north,south,north,go_alone(T1)) ) ),
    inference(quant_intro,[status(thm)],[63]) ).

tff(65,plain,
    ( ! [T1: $i] :
        ( ~ p(north,north,south,north,T1)
        | p(south,north,south,north,go_alone(T1)) )
  <=> ! [T1: $i] :
        ( ~ p(north,north,south,north,T1)
        | p(south,north,south,north,go_alone(T1)) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(66,plain,
    ! [T1: $i] :
      ( ~ p(north,north,south,north,T1)
      | p(south,north,south,north,go_alone(T1)) ),
    inference(and_elim,[status(thm)],[7]) ).

tff(67,plain,
    ! [T1: $i] :
      ( ~ p(north,north,south,north,T1)
      | p(south,north,south,north,go_alone(T1)) ),
    inference(modus_ponens,[status(thm)],[66,65]) ).

tff(68,plain,
    ! [T1: $i] :
      ( ~ p(north,north,south,north,T1)
      | p(south,north,south,north,go_alone(T1)) ),
    inference(skolemize,[status(sab)],[67]) ).

tff(69,plain,
    ! [T1: $i] :
      ( ~ p(north,north,south,north,T1)
      | p(south,north,south,north,go_alone(T1)) ),
    inference(modus_ponens,[status(thm)],[68,64]) ).

tff(70,plain,
    ( ( ~ ! [T1: $i] :
            ( ~ p(north,north,south,north,T1)
            | p(south,north,south,north,go_alone(T1)) )
      | ~ p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))
      | p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))) )
  <=> ( ~ ! [T1: $i] :
            ( ~ p(north,north,south,north,T1)
            | p(south,north,south,north,go_alone(T1)) )
      | ~ p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))
      | p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(71,plain,
    ( ~ ! [T1: $i] :
          ( ~ p(north,north,south,north,T1)
          | p(south,north,south,north,go_alone(T1)) )
    | ~ p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))
    | p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(72,plain,
    ( ~ ! [T1: $i] :
          ( ~ p(north,north,south,north,T1)
          | p(south,north,south,north,go_alone(T1)) )
    | ~ p(north,north,south,north,take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))
    | p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))) ),
    inference(modus_ponens,[status(thm)],[71,70]) ).

tff(73,plain,
    p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start))))))),
    inference(unit_resolution,[status(thm)],[72,69,62]) ).

tff(74,plain,
    ( ( ~ ! [X: $i,Y: $i,U: $i] :
            ( ~ p(south,X,south,Y,U)
            | p(north,X,north,Y,take_goat(U)) )
      | ~ p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))
      | p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))) )
  <=> ( ~ ! [X: $i,Y: $i,U: $i] :
            ( ~ p(south,X,south,Y,U)
            | p(north,X,north,Y,take_goat(U)) )
      | ~ p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))
      | p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(75,plain,
    ( ~ ! [X: $i,Y: $i,U: $i] :
          ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) )
    | ~ p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))
    | p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(76,plain,
    ( ~ ! [X: $i,Y: $i,U: $i] :
          ( ~ p(south,X,south,Y,U)
          | p(north,X,north,Y,take_goat(U)) )
    | ~ p(south,north,south,north,go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))
    | p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))) ),
    inference(modus_ponens,[status(thm)],[75,74]) ).

tff(77,plain,
    p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))),
    inference(unit_resolution,[status(thm)],[76,11,73]) ).

tff(78,plain,
    ^ [Z: $i] :
      refl(
        ( ~ p(north,north,north,north,Z)
      <=> ~ p(north,north,north,north,Z) )),
    inference(bind,[status(th)],]) ).

tff(79,plain,
    ( ! [Z: $i] : ~ p(north,north,north,north,Z)
  <=> ! [Z: $i] : ~ p(north,north,north,north,Z) ),
    inference(quant_intro,[status(thm)],[78]) ).

tff(80,plain,
    ( ~ ? [Z: $i] : p(north,north,north,north,Z)
  <=> ~ ? [Z: $i] : p(north,north,north,north,Z) ),
    inference(rewrite,[status(thm)],]) ).

tff(81,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(or_elim,[status(thm)],[6]) ).

tff(82,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[81,80]) ).

tff(83,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[82,80]) ).

tff(84,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[83,80]) ).

tff(85,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[84,80]) ).

tff(86,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[85,80]) ).

tff(87,plain,
    ~ ? [Z: $i] : p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[86,80]) ).

tff(88,plain,
    ^ [Z: $i] : refl($oeq(~ p(north,north,north,north,Z),~ p(north,north,north,north,Z))),
    inference(bind,[status(th)],]) ).

tff(89,plain,
    ! [Z: $i] : ~ p(north,north,north,north,Z),
    inference(nnf-neg,[status(sab)],[87,88]) ).

tff(90,plain,
    ! [Z: $i] : ~ p(north,north,north,north,Z),
    inference(modus_ponens,[status(thm)],[89,79]) ).

tff(91,plain,
    ( ~ ! [Z: $i] : ~ p(north,north,north,north,Z)
    | ~ p(north,north,north,north,take_goat(go_alone(take_wolf(take_goat(take_cabbage(go_alone(take_goat(start)))))))) ),
    inference(quant_inst,[status(thm)],]) ).

tff(92,plain,
    $false,
    inference(unit_resolution,[status(thm)],[91,90,77]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : PUZ047+1 : TPTP v8.1.0. Released v2.5.0.
% 0.12/0.13  % Command  : z3_tptp -proof -model -t:%d -file:%s
% 0.13/0.34  % Computer : n002.cluster.edu
% 0.13/0.34  % Model    : x86_64 x86_64
% 0.13/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.34  % Memory   : 8042.1875MB
% 0.13/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.34  % CPULimit : 300
% 0.13/0.34  % WCLimit  : 300
% 0.13/0.34  % DateTime : Fri Sep  2 18:40:46 EDT 2022
% 0.13/0.34  % CPUTime  : 
% 0.19/0.34  Z3tptp [4.8.9.0] (c) 2006-20**. Microsoft Corp.
% 0.19/0.34  Usage: tptp [options] [-file:]file
% 0.19/0.34    -h, -?       prints this message.
% 0.19/0.34    -smt2        print SMT-LIB2 benchmark.
% 0.19/0.34    -m, -model   generate model.
% 0.19/0.34    -p, -proof   generate proof.
% 0.19/0.34    -c, -core    generate unsat core of named formulas.
% 0.19/0.34    -st, -statistics display statistics.
% 0.19/0.34    -t:timeout   set timeout (in second).
% 0.19/0.34    -smt2status  display status in smt2 format instead of SZS.
% 0.19/0.34    -check_status check the status produced by Z3 against annotation in benchmark.
% 0.19/0.34    -<param>:<value> configuration parameter and value.
% 0.19/0.34    -o:<output-file> file to place output in.
% 0.19/0.41  % SZS status Theorem
% 0.19/0.41  % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------