Maplet Overriding in Goal: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Billaude |
imported>Billaude |
||
Line 25: | Line 25: | ||
├── A | ├── A | ||
└── B | └── B | ||
Then, if the hypothesis <math>f\in A\to B</math> is | Then, if the hypothesis <math>f\in A\to B</math> is present, the goal is split as follows : | ||
:*<math>f\in A\to B</math> | :*<math>f\in A\to B</math> | ||
:*<math>x \in A</math> | :*<math>x \in A</math> | ||
:*<math>y \in B</math> | :*<math>y \in B</math> | ||
Else, it is | Else, it is split as follows : | ||
:*<math>{x} \domsub f \in A \smallsetminus | :*<math>\{x\} \domsub f \in A \smallsetminus \{x\} \to B</math> | ||
:*<math>x \in A</math> | :*<math>x \in A</math> | ||
:*<math>y \in B</math> | :*<math>y \in B</math> | ||
[[Category:Design proposal]] | [[Category:Design proposal]] |
Revision as of 13:11, 30 May 2011
This page describes the design of a tactic requested here : Feature Request #3306228
Objective
Split every goal in the form : into three sub-goals :
Design Decision
Instead of proofing the first sub-goal, it may be more easy to proof which is a sufficient condition : .
Implementation
First, the goal is checked. Its tree structure must match the following one :
├── │ ├── f │ └── {} │ └── │ ├── x │ └── y └── ├── A └── B
Then, if the hypothesis is present, the goal is split as follows :
Else, it is split as follows :