Difference between pages "Rodin Proof Tactics" and "Rodin Workshop 2009"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Son
 
imported>Mathieu
m (→‎Friday 17 July: Remove spam links)
 
Line 1: Line 1:
This page contains descriptions of the available proof tactics within the RODIN Platform.
+
{{TOCright}}
  
For each tactic, the descriptions is as follows:
 
  
* '''Description''': A high-level description of the tactic. This will be the description appeared in the RODIN Platform preferences.
+
= Rodin User and Developer Workshop July 15-17 2009 =
  
* '''Additional details''': (Optional) Details explanation of the tactic.
 
  
* '''ID''': An unique ID associated with the tactic.
+
While much of the continued development and use of Rodin takes place within the DEPLOY Project, there is a growing group of users and plug-in developers outside of DEPLOY. In July 2009, DEPLOY organised a workshop at the University of Southampton to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers.  For Rodin users the workshop provided an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop provided an opportunity to showcase their tools and to achieve better coordination of tool development effort.  Moving towards an open source development project will mean that features that cannot be resourced from within the project can be developed outside the project.  It will also help to guarantee the longer-term future of the Rodin platform.
 +
This report contains the abstracts of the presentations at the workshop on 16 and 17 July 2009.  The workshop was preceded by a tutorial for Rodin Plug-in developers on 15 July.
  
* '''Auto-tactic''': ''No'': the tactic cannot be added as an auto-tactic. ''Yes'': the tactic can be added as an auto-tactic. ''Default'': the tactic is a default auto-tactic.
+
We would like to acknowledge the support of the School of Electronics and Computer Science at the University of Southampton (especially the organisational work of Maggie Bond), the DEPLOY project and additional government funding.
  
* '''Post-tactic''': ''No'': the tactic cannot be added as a post-tactic. ''Yes'': the tactic can be added as a post-tactic. ''Default'': the tactic is a default post-tactic.
 
  
* '''Preference display''': Information on how an application of the tactic is displayed in the auto-tactic preference or the post-tactic preference.
+
'''Organisers'''
  
* '''Interactive''': ''No'': the tactic cannot be invoked interactively. ''Global'': The tactic can be invoked from the Proof Control. ''Goal'': The tactic can be invoked from the goal view. ''Hypothesis'': The tactic can be invoked from the hypothesis view.  If the tactic can be invoked interactively (i.e. either ''Global'', ''Goal'' or ''Hypothesis''), more information about how this could be done will be given. Note that since the '''Post-tactics''' can be launched manually, any tactics that can be included in the post-tactic in principle can be invoked interactively via the post-tactic. Here ''No'' only means that there is no separate invocation for this specific tactic.
+
Michael Butler, University of Southampton
  
* '''Proving interface display''': Example(s) on how an application of this tactic can be seen from the proving interface of the RODIN Platform.
+
Stefan Hallerstede, Heinrich-Heine-Universität Düsseldorf
  
== True Goal ==
+
Laurent Voisin, Systerel
* '''Description''': Discharges any sequent whose goal is '⊤' (logical true).
 
  
* '''ID''': org.eventb.core.seqprover.trueGoalTac
 
  
* '''Auto-tactic''': ''Default''
+
== [http://deploy-eprints.ecs.soton.ac.uk/137/  Report containing the abstracts is available here] ==
  
* '''Post-tactic''': ''Default''
+
== Slides from presentations  ==
  
* '''Preference display''': True Goal (Discharge)
+
=== Wednesday 15 July ===
  
* '''Interactive''': ''No''
+
Laurent Voisin and
 +
Stefan Hallerstede,
 +
[http://wiki.event-b.org/images/Rodin_plug-in_tutorial_2009-07-15.pdf Rodin Plug-in Development Tutorial]
  
* '''Proving interface display''': ⊤ goal
+
===Thursday 16 July===
  
[[Image:TrueGoalExp1.png]]
+
* Michael Butler, [http://wiki.event-b.org/images/Intro.pdf Introduction]
  
== False Hypothesis ==
+
* Ken Robinson, [http://wiki.event-b.org/images/Rodin-workshop-article.pdf System Modelling and Design: Refining Software Engineering]                         
* '''Description''': Discharges any sequent containing a '⊥' hypothesis
 
  
* '''ID''': org.eventb.core.seqprover.falseHypTac
+
* Jean-Raymond Abrial,  [http://deploy-eprints.ecs.soton.ac.uk/138/ Doing Mathematics with the Rodin Platform]
  
* '''Auto-tactic''': ''Default''
+
* Stephen Wright, [http://wiki.event-b.org/index.php/Image:Steve_Wright_Quite_Big_Model_Presentation.pdf Experiences with a Quite Big Event-B Model]
  
* '''Post-tactic''': ''Default''
+
* John Colley,  [http://wiki.event-b.org/images/ColleyJuly09.pdf On Proving with Event-B that a Pipelined Processor Model Implements its ISA Specification]
  
* '''Preference display''': False Hypothesis (Discharge)
+
* Fangfang Yuan, [http://wiki.event-b.org/images/soton-workshop.pdf Quantitative Design Decisions Measurement using Formal Method]
  
* '''Interactive''': ''No''
+
* Kriangsak Damchoom and Michael Butler,  [http://www.event-b.org/rodin09/FlashFileSysRodinWorkshopJuly2009.ppt An Experiment in Applying Event-B and Rodin to a Flash-Based Filestore]
  
* '''Proving interface display''': ⊥ hyp
+
* Philipp Ruemmer,  [http://wiki.event-b.org/images/Talk_rodin09_philipp_ruemmer.pdf A Theory of Finite Sets, Lists, and Maps for the SMT-Lib Standard]
  
[[Image: FalseHypExp1.png]]
+
* Matthias Schmalz, [http://wiki.event-b.org/images/Atp_improvements.pdf Better automated theorem proving in Event-B]
  
== Goal in Hypotheses ==
+
* Issam Maamria, [http://wiki.event-b.org/images/Proposal_for_Rule-based_prover.pdf Proposal for an extensible rule-based prover for Event-B]
* '''Description''': Discharges any sequent whose goal is contained in its hypotheses
 
  
* '''ID''': org.eventb.core.seqprover.goalInHypTac
+
* Gudmund Grov,  [http://wiki.event-b.org/images/Reasoned_modelling.pdf A Proposal for a Rodin Proof Planner & Reasoned Modelling Plug-in]
  
* '''Auto-tactic''': ''Default''
+
* Jens Bendisposto, [http://wiki.event-b.org/images/Using_and_extending_prob.pdf  Using and Extending ProB]
  
* '''Post-tactic''': ''Default''
+
* Ilya Lopatkin, Towards the SAL plugin for the Rodin platform
  
* '''Preference display''': Goal in Hypotheses (Discharge)
+
* Kenneth Lausdahl and Miguel Ferreira, [http://wiki.event-b.org/images/An_Overview_of_Overture.pdf  An Overview of Overture]
  
* '''Interactive''': ''No''
+
* Michael Butler,  [http://wiki.event-b.org/images/Roadmap.pdf Roadmap for the Rodin Tool]
  
* '''Proving interface display''': hyp
+
===Friday 17 July===
  
[[Image: GoalInHypExp1.png]]
+
* Aryldo G Russo Jr., [http://wiki.event-b.org/images/ICFEM_2009_revised_presentation.pdf Formal Methods Outside the Mother Land  ]
  
== Goal Disjunct in Hypothesis ==
+
* Maria Teresa Llano, [http://wiki.event-b.org/images/RodinWorkshopPresentation.pdf Systems Evolution via Animation and Reasoning]
* '''Description''': Discharges any sequent whose goal is a disjunction and one of whose disjuncts is present in the hypotheses.
+
* Atif Mashkoor, [http://wiki.event-b.org/images/BRANIMATION20090717.pdf BRANIMATION]
  
* '''ID''': org.eventb.core.seqprover.goalDisjInHypTac
+
* Fredrik Degerlund and Richard Grönblom, A Framework for Code Generation and Scheduling of Event-B Models
  
* '''Auto-tactic''': ''No''
+
* Andy Edmunds, [http://wiki.event-b.org/images/RodinWorkshop2009.pdf Code Generation from Event-B - Using an Intermediate Specification Notation]
  
* '''Post-tactic''': ''Default''
+
* Alexei Iliasov, [http://wiki.event-b.org/images/Soton_flow.pdf On Event-B and Control Flow]
  
* '''Preference display''': Goal Disjunct in Hypotheses (Discharge)
+
* Michael Jastram, [http://wiki.event-b.org/images/Requirements-quo-vadis.pdf Requirements Traceability]
  
* '''Interactive''': ''No''
+
* Joris Rehm, LORIA, [http://wiki.event-b.org/images/Timed_machine_plugin_visual.pdf A Rodin plugin for quantitative timed models]
  
* '''Proving interface display''': ∨ goal in hyp
+
* Renato Silva, [http://wiki.event-b.org/images/Composition,_Renaming_and_Generic_Instantiation.pdf Composition, Renaming and Generic Instantiation in Event-B Development] 
  
[[Image: GoalDisjInHypExp1.png]]
+
* Abderrahman Matoussi, [http://wiki.event-b.org/images/Slides_matoussi_-Southampton-.pdf Expressing KAOS Goal Refinement Patterns with Event-B ]
  
== Functional Goal ==
+
* Eduardo Mazza, A tool for specifying and validating software responsibility 
* '''Description''': Tries to discharge a sequent whose goal states that an expression is a function (i.e. f ∈ T1 ⇸ T2, where T1 and T2 are type expressions).
 
  
* '''Additional details''': The sequent is discharged if there is a hypothesis specifying that f is a function of any kind (i.e. partial function, total function, partial injection, total injection, partial surjection,  total surjection, bijection). More information about type expressions in Event-B is in the [[FAQ#What are type expressions in Event-B?|FAQ]] page.
+
* Mar Yah Said, [http://wiki.event-b.org/images/Rodin_Workshop_16_July_2009_2.pdf Language and Tool Support for Class and State Machine Refinement in UML-B]  
  
* '''ID''': org.eventb.core.seqprover.funGoalTac
+
* Colin Snook, [http://wiki.event-b.org/images/An_EMF_framework_for_EventB.pdf An EMF Framework for Event-B]
  
* '''Auto-tactic''': ''Default''
+
* James Sharp, Using CSP Refusal Specifications to Ensure Event-B Refinement
  
* '''Post-tactic''': ''Default''
 
  
* '''Preference display''': Functional Goal (Discharge)
+
[[Category:Meetings]]
 
 
* '''Interactive''': ''No''
 
 
 
* '''Proving interface display''': functional goal
 
 
 
[[Image:FunctionalGoalExp1.png]]
 
 
 
== Simplification Rewriter ==
 
* '''Description''': Tries to simplify all predicates in a sequent using pre-defined simplification rewriting rules.
 
 
 
* '''Additional details''': The list of rewriting rules are in the following page [[All Rewrite Rules | http://wiki.event-b.org/index.php/All_Rewrite_Rules]], which are marked as ''Automatic''.
 
 
 
* '''ID''': org.eventb.core.seqprover.autoRewriteTac
 
 
 
* '''Auto-tactic''': ''Default''
 
 
 
* '''Post-tactic''': ''Default''
 
 
 
* '''Preference display''': Simplification Rewriter (Simplify)
 
 
 
* '''Interactive''': ''No''
 
 
 
* '''Proving interface display''': simplification rewrites
 
 
 
The example below shows the screen-shots of the step before the application of the tactic and the step just after the application of the tactic.  There are 3 rewritings have been done as follows.
 
 
 
<math>
 
\begin{array}{rcl}
 
a + 0  & \Longrightarrow & a \\
 
a = a & \Longrightarrow & \btrue \\
 
c * 1 & \Longrightarrow & c \\
 
\end{array}
 
</math>
 
 
 
Note that <math>\btrue</math> hypothesis is always ''dropped'' in the RODIN Platform.
 
 
 
Before [[Image:SimplifcationRewritesExp1.png]]
 
 
 
After [[Image:SimplifcationRewritesExp2.png]]
 
 
 
== Type Rewriter ==
 
* '''Description''': Simplifies predicates containing type expressions such as E ∈ T to ⊤ and T = ∅ to ⊥.
 
 
 
* '''Additional details''': More information about type expressions in Event-B is in the [[FAQ#What are type expressions in Event-B?|FAQ]] page.
 
 
 
* '''ID''': org.eventb.core.seqprover.typeRewriteTac
 
 
 
* '''Auto-tactic''': ''Default''
 
 
 
* '''Post-tactic''': ''Default''
 
 
 
* '''Preference display''': Type Rewriter (Simplify)
 
 
 
* '''Interactive''': ''No''
 
 
 
* '''Proving interface display''': type rewrites
 
 
 
The example below shows the screen-shots of the step before the application of the tactic and the step just after the application of the tactic.
 
 
 
Before [[Image: TypeRewritesExp1.png]]
 
 
 
After [[Image: TypeRewritesExp2.png]]
 
 
 
== Implication Goal ==
 
* '''Description''': Simplifies any sequent with an implicative goal by adding the left hand side of the implication to the hypotheses and making its right hand side the new goal.
 
 
 
* '''ID''': org.eventb.core.seqprover.impGoalTac
 
 
 
* '''Auto-tactic''': ''No''
 
 
 
* '''Post-tactic''': ''Default''
 
 
 
* '''Preference display''': Implicative Goal (Simplify)
 
 
 
* '''Interactive''': ''Goal''. The <math>\limp</math> symbol in the implicative goal is ''redden''. When the mouse hovers the red symbol, the label of the tactic in the context menu is ''Deduction''.
 
 
 
[[Image: ImpGoalInteractive1.png]]
 
 
 
* '''Proving interface display''': ⇒ goal
 
 
 
The example below shows the screen-shots of the step before the application of the tactic and the step just after the application of the tactic.
 
 
 
Before [[Image: ImpGoalExp1.png]]
 
 
 
After [[Image: ImpGoalExp2.png]]
 
 
 
== For-all Goal ==
 
* '''Description''': Simplifies any sequent with a universally quantified goal by freeing all its bound variables.
 
 
 
* '''ID''': org.eventb.core.seqprover.forallGoalTac
 
 
 
* '''Auto-tactic''': ''No''
 
 
 
* '''Post-tactic''': ''Yes''
 
 
 
* '''Preference display''': For-all Goal (Simplify)
 
 
 
* '''Interactive''': ''Goal''. The  symbol <textcolor=red><math>\forall</math></textcolor> in the universal quantified goal is redden. When the mouse hovers the red symbol, the label of the tactic in the context menu is ''Forall instantiation''.
 
 
 
[[Image: ForallGoalInteractive1.png]]
 
 
 
* '''Proving interface display''': ∀ goal (frees ''list-of-bounded-identifiers'')
 
 
 
Before [[Image: ForallGoalExp1.png]]
 
 
 
After [[Image: ForallGoalExp2.png]]
 
 
 
== Exists Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Find Contradictory Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Use Equality Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Shrink Implicative Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Shrink Enumerated Set ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Implicative Hypothesis with Conjunctive RHS ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Implicative Hypothesis with Disjunctive LHS ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Conjunctive Goal ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Clarify Goal ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Functional Overriding in Goal ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Functional Overriding in Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Partition Rewriter ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== One-Point Rule in Goal ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== One-Point Rule in Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Bounded Goal with Finite Hypothesis ==
 
* '''Description''': TODO
 
 
 
* '''ID''': TODO
 
 
 
* '''Display''': TODO
 
 
 
* '''Auto-tactic''': TODO
 
 
 
* '''Post-tactic''': TODO
 
 
 
* '''Interactive''': TODO
 
 
 
* '''Example''': TODO
 
 
 
== Falsify Goal ==
 
 
 
== conjI ==
 
 
 
== allI ==
 
 
 
== exI ==
 
 
 
== Remove Negation ==
 
 
 
== Review ==
 
 
 
== Proof by cases ==
 
 
 
== Add Hypothesis ==
 
 
 
== Abstract Expression ==
 
 
 
== Automatic Prover ==
 
 
 
== Post tactic ==
 
 
 
== Lasoo ==
 
 
 
== Back Tracking ==
 
 
 
== Prune ==
 
 
 
== Search Hypothesis ==
 
 
 
== Cache Hypothesis ==
 
 
 
== Previous ==
 
 
 
== Next ==
 
 
 
== Information ==
 
 
 
== Falsify Hypothesis ==
 
 
 
== Modus Ponens ==
 
 
 
== conjE ==
 
 
 
== disjE ==
 
 
 
== allE ==
 
 
 
== exE ==
 
 
 
== eq1 ==
 
 
 
== Double Implication Hypothesis ==
 
 
 
== cont Implication Hypothesis ==
 
 
 
== Functional Overriding ==
 
 
 
== Equality ==
 
 
 
== Modus Tollens ==
 
 
 
== Remove Membership ==
 
 
 
== Remove Inclusion ==
 
 
 
== Remove Strict-Inclusion ==
 
 
 
== Inclusion Set Minus Right ==
 
 
 
== Remove Inclusion Universal ==
 
 
 
== Implication Introduction ==
 
 
 
== Disjunction to Implication ==
 
 
 
== Forall Modus Ponens ==
 
 
 
== Next Pending Sub-goal ==
 
 
 
== Next Reviewed Sub-goal ==
 
 
 
== impAndHyp ==
 
 
 
== impAndGoal ==
 
 
 
== impOrHyp ==
 
 
 
== impOrGoal ==
 
 
 
== relImgUnionRight ==
 
 
 
== relImgUnionLeft ==
 
 
 
== Set Equality ==
 
 
 
== Equivalent ==
 
 
 
== Functional Intersection Image ==
 
 
 
== Functional Set Minus Image ==
 
 
 
== Functional Singleton Image ==
 
 
 
== Converse Relation ==
 
 
 
== Domain Distribution to the Left ==
 
 
 
== Domain Distribution to the Right ==
 
 
 
== Range Distribution to the Left ==
 
 
 
== Range Distribution to the Right ==
 
 
 
== Set Minus ==
 
 
 
== Conjunction and Disjunction Distribution ==
 
 
 
== Union Conjunction Distribution ==
 
 
 
== compUnionDist ==
 
 
 
== Domain/Range Union Distribution ==
 
 
 
== Relational Overriding ==
 
 
 
== Composition Image ==
 
 
 
== Domain Composition ==
 
 
 
== Range Composition ==
 
 
 
== Functional Composition Image ==
 
 
 
== Finite Set in Goal ==
 
 
 
== Finite Intersection in Goal ==
 
 
 
== Finite Set Minus in Goal ==
 
 
 
== Finite Relation in Goal ==
 
 
 
== Finite Relation Image in Goal ==
 
 
 
== Finite Domain in Goal ==
 
 
 
== Finite Range in Goal ==
 
 
 
== Finite Function in Goal ==
 
 
 
== Finite Function Converse in Goal ==
 
 
 
== Finite Functional Relational Image in Goal ==
 
 
 
== Finite Functional Range in Goal ==
 
 
 
== Finite Functional Domain in Goal ==
 
 
 
== Finite Minimum in Goal ==
 
 
 
== Finite Maximum in Goal ==
 
 
 
== Finite Negative in Goal ==
 
 
 
== Finite Positive in Goal ==
 
 
 
== Cardinality Comparison in Goal ==
 
 
 
== Cardinality Up to ==
 
 
 
== Partition Rewrite ==
 
 
 
== Arithmetic Rewrite ==
 
 
 
== Total Domain in Hypothesis / Goal ==
 

Latest revision as of 09:59, 21 September 2011


Rodin User and Developer Workshop July 15-17 2009

While much of the continued development and use of Rodin takes place within the DEPLOY Project, there is a growing group of users and plug-in developers outside of DEPLOY. In July 2009, DEPLOY organised a workshop at the University of Southampton to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers. For Rodin users the workshop provided an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop provided an opportunity to showcase their tools and to achieve better coordination of tool development effort. Moving towards an open source development project will mean that features that cannot be resourced from within the project can be developed outside the project. It will also help to guarantee the longer-term future of the Rodin platform. This report contains the abstracts of the presentations at the workshop on 16 and 17 July 2009. The workshop was preceded by a tutorial for Rodin Plug-in developers on 15 July.

We would like to acknowledge the support of the School of Electronics and Computer Science at the University of Southampton (especially the organisational work of Maggie Bond), the DEPLOY project and additional government funding.


Organisers

Michael Butler, University of Southampton

Stefan Hallerstede, Heinrich-Heine-Universität Düsseldorf

Laurent Voisin, Systerel


Report containing the abstracts is available here

Slides from presentations

Wednesday 15 July

Laurent Voisin and Stefan Hallerstede, Rodin Plug-in Development Tutorial

Thursday 16 July

  • Ilya Lopatkin, Towards the SAL plugin for the Rodin platform

Friday 17 July

  • Fredrik Degerlund and Richard Grönblom, A Framework for Code Generation and Scheduling of Event-B Models
  • Eduardo Mazza, A tool for specifying and validating software responsibility
  • James Sharp, Using CSP Refusal Specifications to Ensure Event-B Refinement