I was going through these notes and they have the following operator on partial functions:
$$ \mathcal F^{k}(\bot)(\sigma) = \left\{ \begin{array}{ll} \alpha( [\![s]\!]\sigma ) & [\![b]\!]\sigma=true \\ \sigma & [\![b]\!]\sigma=false \\ \bot & [\![b]\!]\sigma=\bot \end{array} \right. $$
and supposedly it gives the following definition somehow (which ends up being the right denotation for while loops)
$$ \mathcal F^{k}(\bot)(\sigma) = \left\{ \begin{array}{ll} [\![s]\!]^i & \mbox{if $ \exists i \in [0,k)$ s.t. $ [\![b]\!] [\![s]\!]^i \sigma = false,\ [\![b]\!] [\![s]\!]^j \sigma = true,\ j \in [0,i) $}\\ \bot & \mbox{ o.w. } \end{array} \right. $$
the proof by induction is shouldn't be hard. However, it feels that it doesn't really answer the question for me intuitively because I could do the induction mechanically without understanding what is going on. Why isn't the definition something like:
$$ f(\sigma,i) = [\![s]\!]^i\sigma$$
then the induction is easy:
$$ f(\sigma,0) = [\![s]\!]^0\sigma = \sigma$$
then the inductive step:
$$ f(\sigma,k+1) = f \circ f{\circ}^k(\sigma)= f \circ[\![s]\!]^{k}\sigma$$
but also notice $f = [\![s]\!]^1\sigma$ by strong induction:
$$ f(\sigma,k+1) = [\![s]\!]^{k+1}\sigma$$
as required. But that doesn't seem at all to be the sort of argument being used (assuming what I wrote is right). Did I miss something?