عمل جمع جابجایی نیست؟ به نظرتان $f_1+f_2$ با $f_2+f_1$ تفاوتی ایجاد میکند؟ بنابراین اینکه در یکی تابع یکُم را نیمپیوستهٔ بالایی گرفتهاید و دومی را پائینی تفاوتی با دومی که تابع یکُم را پائینی و تابع دوم را بالایی گرفتید ندارد. و در اینصورت اگر ادعایتان درست باشد چرا یک ضرب نمیگوئید جمع دو تابع که یکی نیمپیوستهٔ بالایی و دیگری پائینی باشد، تابعی پیوسته (معمولی) میشود؟
برگردیم به پرسش.
تعریف نیمپیوستهٔ بالایی و نیمپیوستهٔ پائینی را یادآوری میکنیم. یک تابع $f\colon\mathbb{R}\to\mathbb{R}$ را نیمپیوستهٔ بالایی گوئیم هر گاه برای هر نقطهٔ $x_0\in\mathbb{R}$ داشتهباشیم $f(x_0)\geq\limsup_{x\to x_0}f(X)$. یعنی در هر نقطهای، مقدار تابع باید از بزرگترین حد دنبالههای $\lbrace f(x_i)\rbrace_{i=1}^\infty$ای که $\lbrace x_i\rbrace_{i=1}^\infty$ها به $x_0$ میل میکنند بزرگتر یا مساوی باشد. خیلی ساده میتوانید ببینید که یک تابع پیوسته، نیمپیوستهٔ بالایی نیز است. چرا؟ چون برای هر دنبالهٔ $\lbrace x_n\rbrace\to x_0$ داریم $\lbrace f(x_n)\rbrace\to f(x_0)$ پس مجموعهٔ حدهایی که باید از آن بیشینه بگیریم تکعضوی است پس $\limsup_{x\to x_0}f(x)$ برابر با $f(x_0)$ است که در شرط بزرگتریامساوی صدق میکند. اکنون به عنوان تمرین ساده میتوانید نشان دهید که اگر یک تابع افزایشی (نه الزاما اکید) داشتهباشیم، آنگاه نیمپیوستهٔ بالایی است اگر و تنها اگر در نقطههای ناپیوستگیاش مقدارش برابر با حد راستش باشد.
به روش یکسان نیز نیمپیوستهٔ پائینی تعریف میشود و نکتههای یکسانی را داریم. برای نمونه، یک تابع افزایشی، نیمپیوستهٔ پائینی است اگر و تنها اگر در نقطههای ناپیوستگیاش، مقدارش برابر با حد چپش باشد.
پس خیلی راحت تابع جزء صحیح که افزایشی (نااکید) و پیوسته از سمت راست، در نتیجه نیمپیوستهٔ بالایی است و تابع سقف (مانند جزءصحیح است با این تفاوت که عددهای ناصحیح را به سمت بالا گرد میکند پس سقفِ $3.14$ میشود ۴ نه ۳) که افزایشی (نااکید) و پیوسته از سمت چپ، در نتیجه نیمپیوستهٔ پائینی است را در نظر بگیرید. در زیر نمودار این دو تابع رسم شدهاند. توجه کنید که در انگلیسی floor و ceiling به ترتیب به معنای کف و سقف هستند که برای همین نیز برخی تابع جزءصحیح و سقف را با floor و ceil نمایش میدهند. دستورهای رسم این نمودارها با نرمافزار Maple نیز گذاشتهشدهاند.
floorLineSegments:=[seq(plot([[i,i],[i+1,i]],'color'='blue'),i=-5..5)]:
floorFilledPoints:=plots:-pointplot([seq([i,i],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='blue'):
floorEmptyPoints:=plots:-pointplot([seq([i+1,i],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='white'):
floorPointsBorders:=plots:-pointplot([seq([i,i],i=-5..5),seq([i+1,i],i=-5..5)],'symbol'='circle','symbolsize'=20,'color'='blue'):
floorDottedLines:=[seq(plots:-display(plottools:-line([i,i-1],[i,i],'linestyle'='dot','color'='red')),i=-5..5)]:
floorText:=plots:-textplot([-4.5,3,'typeset'(y=floor(x))],'font'=['times',18],'color'='black','align'={'above','right'}):
plots:-display(seq(floorLineSegments[i],i=1..numelems(floorLineSegments)),floorFilledPoints,floorEmptyPoints,floorPointsBorders,seq(floorDottedLines[i],i=1..numelems(floorDottedLines)),floorText,'view'=[-5..5,-5..5],'labels'=[x,y]);

ceilLineSegments:=[seq(plot([[i,i+1],[i+1,i+1]],'color'='blue'),i=-5..5)]:
ceilFilledPoints:=plots:-pointplot([seq([i,i],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='blue'):
ceilEmptyPoints:=plots:-pointplot([seq([i,i+1],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='white'):
ceilPointsBorders:=plots:-pointplot([seq([i,i],i=-5..5),seq([i,i+1],i=-5..5)],'symbol'='circle','symbolsize'=20,'color'='blue'):
ceilDottedLines:=[seq(plots:-display(plottools:-line([i,i],[i,i+1],'linestyle'='dot','color'='red')),i=-5..5)]:
ceilText:=plots:-textplot([-4.5,3,'typeset'(y=ceil(x))],'font'=['times',18],'color'='black','align'={'above','right'}):
plots:-display(seq(ceilLineSegments[i],i=1..numelems(ceilLineSegments)),ceilFilledPoints,ceilEmptyPoints,ceilPointsBorders,seq(ceilDottedLines[i],i=1..numelems(ceilDottedLines)),ceilText,'view'=[-5..5,-5..5],'labels'=[x,y]);

و اما اکنون جمع این دو تابع را در نظر بگیرید. نمودار آن را در زیر میبینید.
sumLineSegments:=[seq(plot([[i,2*i+1],[i+1,2*i+1]],'color'='blue'),i=-5..5)]:
sumFilledPoints:=plots:-pointplot([seq([i,2*i],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='blue'):
sumEmptyPoints:=plots:-pointplot([seq([i,2*i+1],i=-5..5),seq([i,2*i-1],i=-5..5)],'symbol'='solidcircle','symbolsize'=20,'color'='white'):
sumPointsBorders:=plots:-pointplot([seq([i,2*i],i=-5..5),seq([i,2*i+1],i=-5..5),seq([i,2*i-1],i=-5..5)],'symbol'='circle','symbolsize'=20,'color'='blue'):
sumDottedLines:=[seq(plots:-display(plottools:-line([i,2*i-1],[i,2*i+1],'linestyle'='dot','color'='red')),i=-5..5)]:
sumText:=plots:-textplot([-4.5,3,'typeset'(y=floor(x)+ceil(x))],'font'=['times',18],'color'='black','align'={'above','right'}):
plots:-display(seq(sumLineSegments[i],i=1..numelems(sumLineSegments)),sumFilledPoints,sumEmptyPoints,sumPointsBorders,seq(sumDottedLines[i],i=1..numelems(sumDottedLines)),sumText,'view'=[-5..5,-5..5],'labels'=[x,y]);

همانگونه که میبینید یک تابع افزایشی (نااکید) است که در نقطههای صحیح از هیچ سمتی پیوسته نیست. در نتیجه نه نیمپیوستهٔ بالایی است و نه نیمپیوستهٔ پائینی. پس هر دو ادعایتان رد میشوند.