set X = StandardStackSystem A;
let f be Function of NAT, the carrier' of (StandardStackSystem A); STACKS_1:def 8 ex i being Nat ex s being stack of (StandardStackSystem A) st
( f . i = s & ( not emp s implies f . (i + 1) <> pop s ) )
assume E1:
for i being Nat
for s being stack of (StandardStackSystem A) st f . i = s holds
( not emp s & f . (i + 1) = pop s )
; contradiction
reconsider g = f . 1 as Element of A * by EXAM;
defpred S1[ Nat] means ex i being Nat ex g being Element of A * st
( g = f . i & A = len g );
E2:
ex k being Nat st S1[k]
proof
take k =
len g;
S1[k]
take i = 1;
ex g being Element of A * st
( g = f . i & k = len g )
take
g
;
( g = f . i & k = len g )
thus
(
g = f . i &
k = len g )
;
verum
end;
E3:
for k being Nat st k <> 0 & S1[k] holds
ex n being Nat st
( n < k & S1[n] )
proof
let k be
Nat;
( k <> 0 & S1[k] implies ex n being Nat st
( n < k & S1[n] ) )
assume E4:
k <> 0
;
( not S1[k] or ex n being Nat st
( n < k & S1[n] ) )
then consider n0 being
Nat such that E7:
k = n0 + 1
by NAT_1:6;
given i being
Nat,
g being
Element of
A * such that E5:
(
g = f . i &
k = len g )
;
ex n being Nat st
( n < k & S1[n] )
reconsider s =
g as
stack of
(StandardStackSystem A) by E5;
reconsider h =
pop s as
Element of
A * by EXAM;
take n =
len h;
( n < k & S1[n] )
E8:
not
s is
empty
by E4, E5;
then
not
emp s
by EXAM;
then E6:
(
f . (i + 1) = pop s &
h = Del (
g,1) )
by E1, E5, EXAM;
1
in dom g
by E8, FINSEQ_5:6;
then
n0 = n
by E7, E5, E6, FINSEQ_3:109;
hence
(
n < k &
S1[
n] )
by E7, E6, NAT_1:13;
verum
end;
S1[ 0 ]
from NAT_1:sch 7(E2, E3);
then consider i being Nat, g being Element of A * such that
E9:
( g = f . i & 0 = len g )
;
reconsider s = g as stack of (StandardStackSystem A) by E9;
( g is empty & not emp s )
by E1, E9;
hence
contradiction
by EXAM; verum