Nuprl Theory hoare_examples

(only non hidden objects are presented)

THMnot_not_eqx,y:. (x = y) x = y
MLsuper_reducelet BoolToProp i = RWH (bool_to_propC) i ;; let Reduce' i = Reduce i THEN RWH (bool_to_propC) i THEN Try (RW (SweepUpC (LemmaC `not_not_eq`)) i) ;;
THMhoare_example_1[q] = 2 {SKIP} [q] = 2
THMhoare_example_2True {a := 2} [a] = 2
THMhoare_example_3True {WHILE Bexp(tt) DO SKIP OD} False
DISPfactorial_df(<n:nat:*>)!== (<n>)!
MLfactorial_ml(n)!==r if n z 0 then 1 else n * (n - 1)! fi
THMfactorial_wfn:. (n)!
THMhoare_example_4n: True {f := 1; i := 0; WHILE NOT i == n DO i := i + 1; f := i * f OD} [f] = (n)!
THMgcd_suba,b,y:. GCD(a;b;y) GCD(a;b - a;y)
DISPgcd_exe_df#GCD#== #GCD#
ABSgcd_exe#GCD# == WHILE NOT a == b DO IF a < b THEN b := b - a ELSE a := a - b OD
THMgcd_exe_wf#GCD#
THMhoare_gcd_1n:. GCD([a];[b];n) {#GCD#} [a] ~ n
THMhoare_gcd_2[a] > 0 [b] > 0 {#GCD#} [a] > 0 [b] > 0
THMhoare_gcdn:. GCD([a];[b];n) [a] > 0 [b] > 0 {#GCD#} [a] = n

the other theories