let X be StackAlgebra; id the carrier of X, id the carrier' of X form_isomorphism_between X,X
set F = id the carrier of X;
set G = id the carrier' of X;
thus
( dom (id the carrier of X) = the carrier of X & rng (id the carrier of X) = the carrier of X & id the carrier of X is one-to-one )
by RELAT_1:45; STACKS_1:def 21 ( dom (id the carrier' of X) = the carrier' of X & rng (id the carrier' of X) = the carrier' of X & id the carrier' of X is one-to-one & ( for s1, s2 being stack of X st s2 = (id the carrier' of X) . s1 holds
( ( emp s1 implies emp s2 ) & ( emp s2 implies emp s1 ) & ( not emp s1 implies ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) ) & ( for e1, e2 being Element of X st e2 = (id the carrier of X) . e1 holds
push (e2,s2) = (id the carrier' of X) . (push (e1,s1)) ) ) ) )
thus
( dom (id the carrier' of X) = the carrier' of X & rng (id the carrier' of X) = the carrier' of X & id the carrier' of X is one-to-one )
by RELAT_1:45; for s1, s2 being stack of X st s2 = (id the carrier' of X) . s1 holds
( ( emp s1 implies emp s2 ) & ( emp s2 implies emp s1 ) & ( not emp s1 implies ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) ) & ( for e1, e2 being Element of X st e2 = (id the carrier of X) . e1 holds
push (e2,s2) = (id the carrier' of X) . (push (e1,s1)) ) )
let s1, s2 be stack of X; ( s2 = (id the carrier' of X) . s1 implies ( ( emp s1 implies emp s2 ) & ( emp s2 implies emp s1 ) & ( not emp s1 implies ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) ) & ( for e1, e2 being Element of X st e2 = (id the carrier of X) . e1 holds
push (e2,s2) = (id the carrier' of X) . (push (e1,s1)) ) ) )
assume A0:
s2 = (id the carrier' of X) . s1
; ( ( emp s1 implies emp s2 ) & ( emp s2 implies emp s1 ) & ( not emp s1 implies ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) ) & ( for e1, e2 being Element of X st e2 = (id the carrier of X) . e1 holds
push (e2,s2) = (id the carrier' of X) . (push (e1,s1)) ) )
then A1:
s2 = s1
by FUNCT_1:17;
thus
( emp s1 iff emp s2 )
by A0, FUNCT_1:17; ( not emp s1 iff ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) )
thus
( not emp s1 implies ( pop s2 = (id the carrier' of X) . (pop s1) & top s2 = (id the carrier of X) . (top s1) ) )
by A1, FUNCT_1:17; for e1, e2 being Element of X st e2 = (id the carrier of X) . e1 holds
push (e2,s2) = (id the carrier' of X) . (push (e1,s1))
let e1, e2 be Element of X; ( e2 = (id the carrier of X) . e1 implies push (e2,s2) = (id the carrier' of X) . (push (e1,s1)) )
assume
e2 = (id the carrier of X) . e1
; push (e2,s2) = (id the carrier' of X) . (push (e1,s1))
then
e2 = e1
by FUNCT_1:17;
hence
push (e2,s2) = (id the carrier' of X) . (push (e1,s1))
by A1, FUNCT_1:17; verum