html> Proof Portal

Proof Portal

This is a demonstrator of an infrastructure for proving resource properties of bytcode programs in a distributed environment, developed by the Mobile Resource Guarantees (MRG) project. MRG Logo


Prove-a-Theorem

In this section you can run one of a given set of proofs on resource properties of Grail programs. This includes (first a set of generic test proofs, unrelated to Grail), a set of proofs for time-bounds on simple purely-functional Grail programs, and finally a set of proofs over heap-allocating programs, using Separation Logic constructs.

Select a certificate (Isabelle proof script):


Prove-a-program

In this section you can prove a resource property (currently only an upper bound on execution time) for a Grail program. Select the program, specify an upper bound on the execution time as the number of computation steps. When clicking the prove button, a proof-script, asserting the provided time bound, will be automatically generated and checked by the theorem prover on the consumer.

Select one of the existing Grail programs: and an upper bound on execution time (in steps)


Upload a Program:

In this section you can upload a Camelot, Grail or Isabelle theory file from your code producer to the consumer and process the file on the consumer. The most interesting case is probably to upload both a Grail program and a corresponding theory file, which contains a resource property of this program. Clicking the prove button below will invoke a proof-checker (Isabelle) and will return the result of running this proof on the consumer.

Choose your file to upload

Choose a corresponding Isabelle theory to upload

What do you want to do with this file?
Extract Theory from Grail code
Proof Theorem
Prove time bound        Specify time bound:


Run-a-Program

The links in this section lead to pages where you can pick one of a given set Camelot and Grail programs, edit them if you so wish, and execute them on the consumer. You can also upload your own program and run it on the consumer.