TSTP Solution File: SEU492^1 by Lash---1.13
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Lash---1.13
% Problem : SEU492^1 : TPTP v8.1.2. Released v3.6.0.
% Transfm : none
% Format : tptp:raw
% Command : lash -P picomus -M modes -p tstp -t %d %s
% Computer : n003.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 : Thu Aug 31 17:17:53 EDT 2023
% Result : Theorem 0.20s 0.48s
% Output : Proof 0.20s
% Verified :
% SZS Type : Refutation
% Derivation depth : 7
% Number of leaves : 77
% Syntax : Number of formulae : 90 ( 53 unt; 4 typ; 32 def)
% Number of atoms : 216 ( 41 equ; 4 cnn)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 508 ( 97 ~; 25 |; 12 &; 294 @)
% ( 17 <=>; 63 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 3 avg)
% Number of types : 2 ( 0 usr)
% Number of type conns : 98 ( 98 >; 0 *; 0 +; 0 <<)
% Number of symbols : 54 ( 51 usr; 52 con; 0-2 aty)
% Number of variables : 179 ( 84 ^; 90 !; 5 ?; 179 :)
% Comments :
%------------------------------------------------------------------------------
thf(ty_eigen__5,type,
eigen__5: $i ).
thf(ty_eigen__6,type,
eigen__6: $i ).
thf(ty_eigen__1,type,
eigen__1: $i ).
thf(ty_eigen__0,type,
eigen__0: $i > $i > $o ).
thf(h0,assumption,
! [X1: $i > $o,X2: $i] :
( ( X1 @ X2 )
=> ( X1 @ ( eps__0 @ X1 ) ) ),
introduced(assumption,[]) ).
thf(eigendef_eigen__1,definition,
( eigen__1
= ( eps__0
@ ^ [X1: $i] :
~ ~ ( eigen__0 @ X1 @ X1 ) ) ),
introduced(definition,[new_symbols(definition,[eigen__1])]) ).
thf(eigendef_eigen__6,definition,
( eigen__6
= ( eps__0
@ ^ [X1: $i] :
~ ( ( eigen__0 @ eigen__5 @ X1 )
=> ~ ( eigen__0 @ X1 @ eigen__5 ) ) ) ),
introduced(definition,[new_symbols(definition,[eigen__6])]) ).
thf(eigendef_eigen__5,definition,
( eigen__5
= ( eps__0
@ ^ [X1: $i] :
~ ! [X2: $i] :
( ( eigen__0 @ X1 @ X2 )
=> ~ ( eigen__0 @ X2 @ X1 ) ) ) ),
introduced(definition,[new_symbols(definition,[eigen__5])]) ).
thf(sP1,plain,
( sP1
<=> ! [X1: $i,X2: $i,X3: $i] :
( ~ ( ( eigen__0 @ X1 @ X2 )
=> ~ ( eigen__0 @ X2 @ X3 ) )
=> ( eigen__0 @ X1 @ X3 ) ) ),
introduced(definition,[new_symbols(definition,[sP1])]) ).
thf(sP2,plain,
( sP2
<=> ( eigen__0 @ eigen__6 @ eigen__6 ) ),
introduced(definition,[new_symbols(definition,[sP2])]) ).
thf(sP3,plain,
( sP3
<=> ! [X1: $i,X2: $i] :
( ~ ( ( eigen__0 @ eigen__6 @ X1 )
=> ~ ( eigen__0 @ X1 @ X2 ) )
=> ( eigen__0 @ eigen__6 @ X2 ) ) ),
introduced(definition,[new_symbols(definition,[sP3])]) ).
thf(sP4,plain,
( sP4
<=> ( eigen__0 @ eigen__1 @ eigen__1 ) ),
introduced(definition,[new_symbols(definition,[sP4])]) ).
thf(sP5,plain,
( sP5
<=> ( ~ ( ( eigen__0 @ eigen__6 @ eigen__5 )
=> ~ ( eigen__0 @ eigen__5 @ eigen__6 ) )
=> sP2 ) ),
introduced(definition,[new_symbols(definition,[sP5])]) ).
thf(sP6,plain,
( sP6
<=> ( ( eigen__0 @ eigen__5 @ eigen__6 )
=> ~ ( eigen__0 @ eigen__6 @ eigen__5 ) ) ),
introduced(definition,[new_symbols(definition,[sP6])]) ).
thf(sP7,plain,
( sP7
<=> ! [X1: $i] :
( ( eigen__0 @ eigen__1 @ X1 )
=> ~ ( eigen__0 @ X1 @ eigen__1 ) ) ),
introduced(definition,[new_symbols(definition,[sP7])]) ).
thf(sP8,plain,
( sP8
<=> ( sP4
=> ~ sP4 ) ),
introduced(definition,[new_symbols(definition,[sP8])]) ).
thf(sP9,plain,
( sP9
<=> ( eigen__0 @ eigen__6 @ eigen__5 ) ),
introduced(definition,[new_symbols(definition,[sP9])]) ).
thf(sP10,plain,
( sP10
<=> ! [X1: $i] :
( ( eigen__0 @ eigen__5 @ X1 )
=> ~ ( eigen__0 @ X1 @ eigen__5 ) ) ),
introduced(definition,[new_symbols(definition,[sP10])]) ).
thf(sP11,plain,
( sP11
<=> ! [X1: $i,X2: $i] :
( ( eigen__0 @ X1 @ X2 )
=> ~ ( eigen__0 @ X2 @ X1 ) ) ),
introduced(definition,[new_symbols(definition,[sP11])]) ).
thf(sP12,plain,
( sP12
<=> ( ! [X1: $i] :
~ ( eigen__0 @ X1 @ X1 )
=> ~ sP1 ) ),
introduced(definition,[new_symbols(definition,[sP12])]) ).
thf(sP13,plain,
( sP13
<=> ( eigen__0 @ eigen__5 @ eigen__6 ) ),
introduced(definition,[new_symbols(definition,[sP13])]) ).
thf(sP14,plain,
( sP14
<=> ( sP11
=> ~ sP1 ) ),
introduced(definition,[new_symbols(definition,[sP14])]) ).
thf(sP15,plain,
( sP15
<=> ! [X1: $i] :
~ ( eigen__0 @ X1 @ X1 ) ),
introduced(definition,[new_symbols(definition,[sP15])]) ).
thf(sP16,plain,
( sP16
<=> ( sP9
=> ~ sP13 ) ),
introduced(definition,[new_symbols(definition,[sP16])]) ).
thf(sP17,plain,
( sP17
<=> ! [X1: $i] :
( ~ ( sP9
=> ~ ( eigen__0 @ eigen__5 @ X1 ) )
=> ( eigen__0 @ eigen__6 @ X1 ) ) ),
introduced(definition,[new_symbols(definition,[sP17])]) ).
thf(def_subrel,definition,
( subrel
= ( ^ [X1: $i > $i > $o,X2: $i > $i > $o] :
! [X3: $i,X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( X1 @ X3 @ X4 )
@ ( X2 @ X3 @ X4 ) ) ) ) ).
thf(def_inv,definition,
( inv
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] : ( X1 @ X3 @ X2 ) ) ) ).
thf(def_idem,definition,
( idem
= ( ^ [X1: ( $i > $i > $o ) > $i > $i > $o] :
! [X2: $i > $i > $o] :
( ( X1 @ ( X1 @ X2 ) )
= ( X1 @ X2 ) ) ) ) ).
thf(def_infl,definition,
( infl
= ( ^ [X1: ( $i > $i > $o ) > $i > $i > $o] :
! [X2: $i > $i > $o] : ( subrel @ X2 @ ( X1 @ X2 ) ) ) ) ).
thf(def_mono,definition,
( mono
= ( ^ [X1: ( $i > $i > $o ) > $i > $i > $o] :
! [X2: $i > $i > $o,X3: $i > $i > $o] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( subrel @ X2 @ X3 )
@ ( subrel @ ( X1 @ X2 ) @ ( X1 @ X3 ) ) ) ) ) ).
thf(def_refl,definition,
( refl
= ( ^ [X1: $i > $i > $o] :
! [X2: $i] : ( X1 @ X2 @ X2 ) ) ) ).
thf(def_irrefl,definition,
( irrefl
= ( ^ [X1: $i > $i > $o] :
! [X2: $i] : ( (~) @ ( X1 @ X2 @ X2 ) ) ) ) ).
thf(def_rc,definition,
( rc
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] :
( ( X2 = X3 )
| ( X1 @ X2 @ X3 ) ) ) ) ).
thf(def_symm,definition,
( symm
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 @ X3 )
@ ( X1 @ X3 @ X2 ) ) ) ) ).
thf(def_antisymm,definition,
( antisymm
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( ( X1 @ X2 @ X3 )
& ( X1 @ X3 @ X2 ) )
@ ( X2 = X3 ) ) ) ) ).
thf(def_asymm,definition,
( asymm
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 @ X3 )
@ ( (~) @ ( X1 @ X3 @ X2 ) ) ) ) ) ).
thf(def_sc,definition,
( sc
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] :
( ( X1 @ X3 @ X2 )
| ( X1 @ X2 @ X3 ) ) ) ) ).
thf(def_trans,definition,
( trans
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i,X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( X1 @ X2 @ X3 )
& ( X1 @ X3 @ X4 ) )
@ ( X1 @ X2 @ X4 ) ) ) ) ).
thf(def_tc,definition,
( tc
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] :
! [X4: $i > $i > $o] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( trans @ X4 )
& ( subrel @ X1 @ X4 ) )
@ ( X4 @ X2 @ X3 ) ) ) ) ).
thf(def_trc,definition,
( trc
= ( ^ [X1: $i > $i > $o] : ( rc @ ( tc @ X1 ) ) ) ) ).
thf(def_trsc,definition,
( trsc
= ( ^ [X1: $i > $i > $o] : ( sc @ ( rc @ ( tc @ X1 ) ) ) ) ) ).
thf(def_po,definition,
( po
= ( ^ [X1: $i > $i > $o] :
( ( refl @ X1 )
& ( antisymm @ X1 )
& ( trans @ X1 ) ) ) ) ).
thf(def_so,definition,
( so
= ( ^ [X1: $i > $i > $o] :
( ( asymm @ X1 )
& ( trans @ X1 ) ) ) ) ).
thf(def_total,definition,
( total
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i] :
( ( X2 = X3 )
| ( X1 @ X2 @ X3 )
| ( X1 @ X3 @ X2 ) ) ) ) ).
thf(def_term,definition,
( term
= ( ^ [X1: $i > $i > $o] :
! [X2: $i > $o] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ? [X3: $i] : ( X2 @ X3 )
@ ? [X3: $i] :
( ( X2 @ X3 )
& ! [X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( X2 @ X4 )
@ ( (~) @ ( X1 @ X3 @ X4 ) ) ) ) ) ) ) ).
thf(def_ind,definition,
( ind
= ( ^ [X1: $i > $i > $o] :
! [X2: $i > $o] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: $i] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ! [X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( tc @ X1 @ X3 @ X4 )
@ ( X2 @ X4 ) )
@ ( X2 @ X3 ) )
@ ! [X3: $i] : ( X2 @ X3 ) ) ) ) ).
thf(def_innf,definition,
( innf
= ( ^ [X1: $i > $i > $o,X2: $i] :
( (~)
@ ? [X3: $i] : ( X1 @ X2 @ X3 ) ) ) ) ).
thf(def_nfof,definition,
( nfof
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] :
( ( trc @ X1 @ X3 @ X2 )
& ( innf @ X1 @ X2 ) ) ) ) ).
thf(def_norm,definition,
( norm
= ( ^ [X1: $i > $i > $o] :
! [X2: $i] :
? [X3: $i] : ( nfof @ X1 @ X3 @ X2 ) ) ) ).
thf(def_join,definition,
( join
= ( ^ [X1: $i > $i > $o,X2: $i,X3: $i] :
? [X4: $i] :
( ( trc @ X1 @ X2 @ X4 )
& ( trc @ X1 @ X3 @ X4 ) ) ) ) ).
thf(def_lconfl,definition,
( lconfl
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i,X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( X1 @ X2 @ X4 )
& ( X1 @ X2 @ X3 ) )
@ ( join @ X1 @ X4 @ X3 ) ) ) ) ).
thf(def_sconfl,definition,
( sconfl
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i,X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( X1 @ X2 @ X4 )
& ( trc @ X1 @ X2 @ X3 ) )
@ ( join @ X1 @ X4 @ X3 ) ) ) ) ).
thf(def_confl,definition,
( confl
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i,X4: $i] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( trc @ X1 @ X2 @ X4 )
& ( trc @ X1 @ X2 @ X3 ) )
@ ( join @ X1 @ X4 @ X3 ) ) ) ) ).
thf(def_cr,definition,
( cr
= ( ^ [X1: $i > $i > $o] :
! [X2: $i,X3: $i] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( trsc @ X1 @ X2 @ X3 )
@ ( join @ X1 @ X2 @ X3 ) ) ) ) ).
thf(alternative_definition_of_strict_order,conjecture,
( ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i,X3: $i] :
( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X2 ) )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) )
= ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i] :
~ ( X1 @ X2 @ X2 )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) ) ) ).
thf(h1,negated_conjecture,
( ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i,X3: $i] :
( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X2 ) )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) )
!= ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i] :
~ ( X1 @ X2 @ X2 )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) ) ),
inference(assume_negation,[status(cth)],[alternative_definition_of_strict_order]) ).
thf(h2,assumption,
~ ! [X1: $i > $i > $o] :
( ( ~ ( ! [X2: $i,X3: $i] :
( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X2 ) )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) )
= ( ~ ( ! [X2: $i] :
~ ( X1 @ X2 @ X2 )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) ) ),
introduced(assumption,[]) ).
thf(h3,assumption,
( ~ sP14 != ~ sP12 ),
introduced(assumption,[]) ).
thf(h4,assumption,
~ sP14,
introduced(assumption,[]) ).
thf(h5,assumption,
~ sP12,
introduced(assumption,[]) ).
thf(h6,assumption,
sP14,
introduced(assumption,[]) ).
thf(h7,assumption,
sP12,
introduced(assumption,[]) ).
thf(h8,assumption,
sP11,
introduced(assumption,[]) ).
thf(h9,assumption,
sP1,
introduced(assumption,[]) ).
thf(1,plain,
( ~ sP8
| ~ sP4
| ~ sP4 ),
inference(prop_rule,[status(thm)],]) ).
thf(2,plain,
( ~ sP7
| sP8 ),
inference(all_rule,[status(thm)],]) ).
thf(3,plain,
( ~ sP11
| sP7 ),
inference(all_rule,[status(thm)],]) ).
thf(4,plain,
( sP15
| sP4 ),
inference(eigen_choice_rule,[status(thm),assumptions([h0])],[h0,eigendef_eigen__1]) ).
thf(5,plain,
( ~ sP12
| ~ sP15
| ~ sP1 ),
inference(prop_rule,[status(thm)],]) ).
thf(6,plain,
$false,
inference(prop_unsat,[status(thm),assumptions([h8,h9,h4,h5,h3,h2,h1,h0])],[1,2,3,4,5,h8,h9,h5]) ).
thf(7,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h4,h5,h3,h2,h1,h0]),tab_negimp(discharge,[h8,h9])],[h4,6,h8,h9]) ).
thf(h10,assumption,
sP15,
introduced(assumption,[]) ).
thf(8,plain,
( ~ sP16
| ~ sP9
| ~ sP13 ),
inference(prop_rule,[status(thm)],]) ).
thf(9,plain,
( ~ sP5
| sP16
| sP2 ),
inference(prop_rule,[status(thm)],]) ).
thf(10,plain,
( ~ sP17
| sP5 ),
inference(all_rule,[status(thm)],]) ).
thf(11,plain,
( ~ sP3
| sP17 ),
inference(all_rule,[status(thm)],]) ).
thf(12,plain,
( ~ sP15
| ~ sP2 ),
inference(all_rule,[status(thm)],]) ).
thf(13,plain,
( ~ sP1
| sP3 ),
inference(all_rule,[status(thm)],]) ).
thf(14,plain,
( sP6
| sP9 ),
inference(prop_rule,[status(thm)],]) ).
thf(15,plain,
( sP6
| sP13 ),
inference(prop_rule,[status(thm)],]) ).
thf(16,plain,
( sP10
| ~ sP6 ),
inference(eigen_choice_rule,[status(thm),assumptions([h0])],[h0,eigendef_eigen__6]) ).
thf(17,plain,
( sP11
| ~ sP10 ),
inference(eigen_choice_rule,[status(thm),assumptions([h0])],[h0,eigendef_eigen__5]) ).
thf(18,plain,
( ~ sP14
| ~ sP11
| ~ sP1 ),
inference(prop_rule,[status(thm)],]) ).
thf(19,plain,
$false,
inference(prop_unsat,[status(thm),assumptions([h10,h9,h6,h7,h3,h2,h1,h0])],[8,9,10,11,12,13,14,15,16,17,18,h6,h10,h9]) ).
thf(20,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h6,h7,h3,h2,h1,h0]),tab_negimp(discharge,[h10,h9])],[h7,19,h10,h9]) ).
thf(21,plain,
$false,
inference(tab_be,[status(thm),assumptions([h3,h2,h1,h0]),tab_be(discharge,[h4,h5]),tab_be(discharge,[h6,h7])],[h3,7,20,h4,h5,h6,h7]) ).
thf(22,plain,
$false,
inference(tab_negall,[status(thm),assumptions([h2,h1,h0]),tab_negall(discharge,[h3]),tab_negall(eigenvar,eigen__0)],[h2,21,h3]) ).
thf(23,plain,
$false,
inference(tab_fe,[status(thm),assumptions([h1,h0]),tab_fe(discharge,[h2])],[h1,22,h2]) ).
thf(24,plain,
$false,
inference(eigenvar_choice,[status(thm),assumptions([h1]),eigenvar_choice(discharge,[h0])],[23,h0]) ).
thf(0,theorem,
( ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i,X3: $i] :
( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X2 ) )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) )
= ( ^ [X1: $i > $i > $o] :
~ ( ! [X2: $i] :
~ ( X1 @ X2 @ X2 )
=> ~ ! [X2: $i,X3: $i,X4: $i] :
( ~ ( ( X1 @ X2 @ X3 )
=> ~ ( X1 @ X3 @ X4 ) )
=> ( X1 @ X2 @ X4 ) ) ) ) ),
inference(contra,[status(thm),contra(discharge,[h1])],[23,h1]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.13 % Problem : SEU492^1 : TPTP v8.1.2. Released v3.6.0.
% 0.12/0.13 % Command : lash -P picomus -M modes -p tstp -t %d %s
% 0.14/0.35 % Computer : n003.cluster.edu
% 0.14/0.35 % Model : x86_64 x86_64
% 0.14/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35 % Memory : 8042.1875MB
% 0.14/0.35 % OS : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35 % CPULimit : 300
% 0.14/0.35 % WCLimit : 300
% 0.14/0.35 % DateTime : Wed Aug 23 19:10:07 EDT 2023
% 0.14/0.35 % CPUTime :
% 0.20/0.48 % SZS status Theorem
% 0.20/0.48 % Mode: cade22grackle2xfee4
% 0.20/0.48 % Steps: 771
% 0.20/0.48 % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------