**The result in Hull:**

For a call option:

For a put option:

And he also derives upper bounds for European put and call options for non-dividend paying stocks.

For a call option:

For a put option:

But he doesn't derive upper bounds for European put and call options for dividend paying stocks. And for call options this gives us a tighter upper bound. Also I wasn't able to find this bound online for some reason, it's almost like everyone is just copying these results from other people and not actually deriving them themselves.

**The new Result**

Let $S_T$ = price of the stock at time $T$.

$K$ = Strike price of the option

$T$ = Maturity of the option

$q$ = dividend yield of the stock

$c_t$ = price of the call option at time $t$.

$max(S_T,K) \leq S_T + K$

$max(S_T,K) - K \leq S_T$

$max(S_T-K,0) \leq S_T$

$c_T \leq S_T$

Then by a no arbitrage argument:

$c_0 \leq S_0 e^{-qT}$

Which is a tighter upper bound than for a non-dividend paying stock.