let s, s1 be State of SCMPDS; :: thesis: for n0, n1, n2 being Nat
for c1, c2 being Integer st ( for i being Nat st i >= n0 & i <> n1 & i <> n2 holds
s1 . (intpos i) = s . (intpos i) ) & n1 <= n2 & ( ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) or ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) holds
for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i)

let n0, n1, n2 be Nat; :: thesis: for c1, c2 being Integer st ( for i being Nat st i >= n0 & i <> n1 & i <> n2 holds
s1 . (intpos i) = s . (intpos i) ) & n1 <= n2 & ( ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) or ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) holds
for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i)

let c1, c2 be Integer; :: thesis: ( ( for i being Nat st i >= n0 & i <> n1 & i <> n2 holds
s1 . (intpos i) = s . (intpos i) ) & n1 <= n2 & ( ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) or ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) implies for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i) )

assume A1: for i being Nat st i >= n0 & i <> n1 & i <> n2 holds
s1 . (intpos i) = s . (intpos i) ; :: thesis: ( not n1 <= n2 or ( not ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) & not ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) or for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i) )

assume A2: n1 <= n2 ; :: thesis: ( ( not ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) & not ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) or for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i) )

assume A3: ( ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) or ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) ; :: thesis: for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i)

per cases ( ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) or ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ) by A3;
suppose A4: ( s1 . (intpos n1) = s . (intpos n1) & s1 . (intpos n2) = s . (intpos n2) ) ; :: thesis: for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i)

hereby :: thesis: verum
let i be Nat; :: thesis: ( i >= n0 & ( i < c1 or i > c2 ) implies s1 . (intpos b1) = s . (intpos b1) )
assume that
A5: i >= n0 and
( i < c1 or i > c2 ) ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
per cases ( ( i <> n1 & i <> n2 ) or not i <> n1 or not i <> n2 ) ;
suppose ( i <> n1 & i <> n2 ) ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
hence s1 . (intpos i) = s . (intpos i) by A1, A5; :: thesis: verum
end;
suppose A6: ( not i <> n1 or not i <> n2 ) ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
hereby :: thesis: verum
per cases ( i = n1 or i = n2 ) by A6;
suppose i = n1 ; :: thesis: s1 . (intpos i) = s . (intpos i)
hence s1 . (intpos i) = s . (intpos i) by A4; :: thesis: verum
end;
suppose i = n2 ; :: thesis: s1 . (intpos i) = s . (intpos i)
hence s1 . (intpos i) = s . (intpos i) by A4; :: thesis: verum
end;
end;
end;
end;
end;
end;
end;
suppose A7: ( c1 <= n1 & n2 <= c2 & s1 . (intpos n1) = s . (intpos n2) & s1 . (intpos n2) = s . (intpos n1) ) ; :: thesis: for i being Nat st i >= n0 & ( i < c1 or i > c2 ) holds
s1 . (intpos i) = s . (intpos i)

hereby :: thesis: verum
let i be Nat; :: thesis: ( i >= n0 & ( i < c1 or i > c2 ) implies s1 . (intpos b1) = s . (intpos b1) )
assume that
A8: i >= n0 and
A9: ( i < c1 or i > c2 ) ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
per cases ( i < c1 or i > c2 ) by A9;
suppose i < c1 ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
then i < n1 by A7, XXREAL_0:2;
hence s1 . (intpos i) = s . (intpos i) by A1, A2, A8; :: thesis: verum
end;
suppose i > c2 ; :: thesis: s1 . (intpos b1) = s . (intpos b1)
then i > n2 by A7, XXREAL_0:2;
hence s1 . (intpos i) = s . (intpos i) by A1, A2, A8; :: thesis: verum
end;
end;
end;
end;
end;