[m-dev.] Solvers, negation, existential quantification, and so forth

Ian MacLarty maclarty at cs.mu.OZ.AU
Mon Jun 5 16:08:04 AEST 2006

On Mon, Jun 05, 2006 at 03:18:16PM +1000, Mark Brown wrote:
> > 
> > Okay I see.  Though I think that extra information you're talking about
> > is actually in those three mode declarations already.  There may be
> > other modes with any insts, but those three ground modes give the
> > "groundness assertions" you're talking of, don't they?
> The modes entail the groundness assertions, but not vice-versa.  That is,
> mode declarations give too much information.
> (I should have never used the phrase "something like functional dependencies";
> they are only superficially similar, and in particular they don't tell you
> that some arguments are functionally dependnent on others).
> > 
> > Of course using this information would mean doing something very
> > different with the modes at compile time (for example you probably
> > wouldn't want to generate code for those three modes, only the any
> > mode).  My point is that the extra information can be expressed with the
> > existing mode system as I see it.  Could you give an example of these
> > "functional dependencies" that couldn't be expressed with the existing
> > mode system?
> It may be possible to derive all the groundness information that we need
> from existing mode declarations.  I don't mind whether the information
> comes from existing mode declarations or from some new declarations; at
> this stage, I'm just interested in whether the groundness information is
> of general use at all in helping the programmer ensure that their program
> is solver complete (and helping them diagnose the problem when it isn't).


Thanks for the examples.  It does look very interesting.

mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list