comp.lang.ada
 help / color / mirror / Atom feed
* Mechanisms for proving rules in .rlu files
@ 2012-08-17 20:39 Ben Hocking
  2012-08-17 21:37 ` Alexander Senier
  2012-08-19 16:33 ` Phil Thornley
  0 siblings, 2 replies; 3+ messages in thread
From: Ben Hocking @ 2012-08-17 20:39 UTC (permalink / raw)


I've created a fairly large .rlu file, and I'm newly aware of the "sparkrules" tool, but I haven't found a way to prove the validity of the rules in my .rlu file. For now, I've written a converter that converts the .rlu file to a PVS theory and I'm working on proving the rules there, but this converter makes a few assumptions that are valid for my rules (all variables are integers or booleans, I'm only using a may_be_replaced_by and may_be_deduced_from, etc.) and of course might have flaws in it that I haven't detected yet.

What mechanisms do others use for proving user-defined rules?

-Ben



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Mechanisms for proving rules in .rlu files
  2012-08-17 20:39 Mechanisms for proving rules in .rlu files Ben Hocking
@ 2012-08-17 21:37 ` Alexander Senier
  2012-08-19 16:33 ` Phil Thornley
  1 sibling, 0 replies; 3+ messages in thread
From: Alexander Senier @ 2012-08-17 21:37 UTC (permalink / raw)


On Fri, 17 Aug 2012 13:39:47 -0700 (PDT)
Ben Hocking <benjaminhocking@gmail.com> wrote:

> What mechanisms do others use for proving user-defined rules?

We do not prove user-defined rules, but work on the SIV (or VCG) files
directly, using the HOL-SPARK verification environment [1] of Isabelle.

Regards
Alex

[1]
http://isabelle.in.tum.de/library/HOL/HOL-Word/HOL-SPARK/Manual/document.pdf



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Mechanisms for proving rules in .rlu files
  2012-08-17 20:39 Mechanisms for proving rules in .rlu files Ben Hocking
  2012-08-17 21:37 ` Alexander Senier
@ 2012-08-19 16:33 ` Phil Thornley
  1 sibling, 0 replies; 3+ messages in thread
From: Phil Thornley @ 2012-08-19 16:33 UTC (permalink / raw)


In article <4365f56f-d4d3-440b-87bb-5cfe868608f5@googlegroups.com>, 
benjaminhocking@gmail.com says...
> 
> I've created a fairly large .rlu file, and I'm newly aware of the "sparkrules" tool, but I haven't found a way to prove the validity of the rules in my .rlu file. For now, I've written a converter that converts the .rlu file to a PVS theory and I'm working on proving the rules there, but this converter makes a few assumptions that are valid for my rules (all variables are integers or booleans, I'm only using a 
may_be_replaced_by and may_be_deduced_from, etc.) and of course might have flaws in it that I haven't detected yet.
> 
> What mechanisms do others use for proving user-defined rules?
> 
> -Ben

I've always used the SPADE Proof Checker - because I was already using 
that when rules were first introduced, and it is trivial to create the 
corresponding VC from the rule as they are both written in FDL. A 
secondary consideration is that, if delivering the rules to a customer, 
they can also be given the proof scripts to repeat the validation 
themselves using only the SPARK tools.

On the assumptions about what types wildcards have, I reckon that it is 
safe to assume that the formulae generated by the Examiner are well 
formed, and that the code they are generated from is free of semantic 
errors.  So context restricts the possible types of the expression that 
will match to a wildcard.  I add checktype sideconditions as appropriate 
where there is any ambiguity.

... and on SPARKRules - have you considered whether it is necessary to 
validate its outputs?  Ie that the Simplifier rule files have been 
generated correctly.  This clearly has to be done independently of the 
process that generates these files and I included the reference for each 
rule in the generated file to allow a backwards check to the validated 
rule in the 'rule library'.

Cheers,

Phil




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-08-20 19:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-17 20:39 Mechanisms for proving rules in .rlu files Ben Hocking
2012-08-17 21:37 ` Alexander Senier
2012-08-19 16:33 ` Phil Thornley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox