Definition program_proved (p: program) :=
exists G, semax_func G p G
/\ table_get G 0 = Some  (0::nil, fun s => allocpool (eval (Var 0) s)).

Axiom semax_if: forall x c1 c2 vars G (P: assert),
expcheck vars x = true ->
semax vars G (fun s => !!(eval x s <> 0) && P s) c1 ->
semax vars G (fun s => !! (eval x s = 0) && P s) c2 ->
semax vars G P (If x Then c1 Else c2).