diff options
Diffstat (limited to 'sucl')
-rw-r--r-- | sucl/pfun.dcl | 2 | ||||
-rw-r--r-- | sucl/pfun.icl | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sucl/pfun.dcl b/sucl/pfun.dcl index baea62f..022188a 100644 --- a/sucl/pfun.dcl +++ b/sucl/pfun.dcl @@ -45,3 +45,5 @@ instance toString Pfun dom ran | toString dom & toString ran on the nodes in `dom' for which it is defined. */ idpfun :: !.[dom] .(Pfun dom dom) -> Bool | == dom + +instance == (Pfun dom ran) | == dom & == ran diff --git a/sucl/pfun.icl b/sucl/pfun.icl index c303b7d..053799f 100644 --- a/sucl/pfun.icl +++ b/sucl/pfun.icl @@ -82,3 +82,11 @@ idpfun :: !.[dom] .(Pfun dom dom) -> Bool | == dom idpfun domain pfun = all idelem domain where idelem x = total True (postcomp ((==) x) pfun) x + +instance == (Pfun dom ran) | == dom & == ran +where (==) EmptyPfun EmptyPfun = True + (==) (Extend x1 y1 pf1) (Extend x2 y2 pf2) + = x1==x2 && y1==y2 && pf1==pf2 + (==) (Restrict x1 pf1) (Restrict x2 pf2) + = x1==x2 && pf1==pf2 + (==) _ _ = False |