dataprop F91 (int, int) =
| {i:int | i <= 100} {r1,r2:int}
F91def1 (i, r2) of (F91 (i+11, r1), F91 (r1, r2))
| {i:int | i >= 101} F91def2 (i, i-10) of ()
prfun f91_lemma1
{i,r:int | 90 <= i; i <= 101} .<101-i>. (pf: F91 (i, r)): [r==91] void =
sif i == 101 then let
prval F91def2 () = pf
in
end else let
prval F91def1 (pf1, pf2) = pf prval F91def2 () = pf1 in
f91_lemma1 (pf2)
end
prfun f91_lemma2
{i,r:int | i <= 100} .<100-i>. (pf: F91 (i, r)): [r==91] void =
sif i >= 90 then f91_lemma1 (pf) else let
prval F91def1 (pf1, pf2) = pf; prval () = f91_lemma2 (pf1)
in
f91_lemma1 (pf2) end