Reduces a multi-element domain to individual elements by: - rewriting dom(). - repeatedly removing individual memberships.
org.eventb.core.seqprover\src\org\eventb\core\seqprover\eventbExtensions\AutoTactics.java
The following subroutine is also needed in BasicTactic.java
public static ITactic loopOnAllPendingConditional\(final ITactic ... tactics\)\{ // return repeat\(onAllPending\(composeUntilSuccess\(tactics\)\)\); return new ITactic\(\)\{ public Object apply\(IProofTreeNode ptNode, IProofMonitor pm\) \{ boolean modified = false; LinkedList<IProofTreeNode> nodes = new LinkedList<IProofTreeNode>\(Arrays.asList\(ptNode.getOpenDescendants\(\)\)\); while \(\! nodes.isEmpty\(\)\) \{ IProofTreeNode node = nodes.removeFirst\(\); for \(ITactic tactic : tactics\) \{ tactic.apply\(node, pm\); if \(\! node.isOpen\(\)\) \{ // tactic made some progress on node modified = true; nodes.addAll\(Arrays.asList\(node.getOpenDescendants\(\)\)\); \} else \{ break; \} \} \} if \(modified\)\{ return null; \} else \{ return "loopOnAllPendingConditional: All tactics failed"; \} \} \}; \}
Log in to post a comment.
org.eventb.core.seqprover\src\org\eventb\core\seqprover\eventbExtensions\AutoTactics.java
The following subroutine is also needed in BasicTactic.java