{ apply SmallStep.whileDo }
case hab

⊢ (Stmt.whileDo (fun s => s "x" > s "y") (Stmt.skip; Stmt.assign "x" fun s => s "x" - 1),
      State.update "x" 1 fun x => 0) ⇒
    ?b

case hbc

⊢ RTC SmallStep ?b (Stmt.skip, fun x => 0)

case b

⊢ Stmt × State
case hbc

⊢ RTC SmallStep
    (Stmt.ifThenElse (fun s => s "x" > s "y")
        ((Stmt.skip; Stmt.assign "x" fun s => s "x" - 1);
          Stmt.whileDo (fun s => s "x" > s "y") (Stmt.skip; Stmt.assign "x" fun s => s "x" - 1))
        Stmt.skip,
      State.update "x" 1 fun x => 0)
    (Stmt.skip, fun x => 0)