1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
opal-examples/Blatt07/SafeNat.sign
2013-10-19 01:17:37 +02:00

21 lines
677 B
Plaintext

SIGNATURE SafeNat
IMPORT Nat ONLY nat
IMPORT Seq[safeNat] ONLY seq
IMPORT Seq[nat] ONLY seq
TYPE safeNat == ok (value : nat)
error (message : denotation)
FUN ` : safeNat -> denotation
FUN safePred : safeNat -> safeNat
FUN safeSucc : safeNat -> safeNat
FUN safeLift : (nat->nat)**(nat->bool)**denotation->safeNat->safeNat
FUN safeLift2 : (nat**nat->nat)**(nat**nat->bool)**denotation->safeNat**safeNat->safeNat
FUN safeAdd : safeNat**safeNat -> safeNat
FUN safeSub : safeNat**safeNat -> safeNat
FUN safeMult : safeNat**safeNat -> safeNat
FUN safeDiv : safeNat**safeNat -> safeNat
FUN safeMap : (nat->nat)**(nat->bool)**denotation->seq[safeNat]->seq[safeNat]