use of de.prob.util.Tuple2 in project prob2 by bendisposto.
the class ProofExtractor method addProofs.
private void addProofs(final EventBMachine m) {
for (Map.Entry<String, String> entry : descriptions.entrySet()) {
String name = entry.getKey();
String desc = entry.getValue();
boolean isDischarged = discharged.contains(name);
String[] split = name.split("/");
String type;
if (split.length == 1) {
type = split[0];
} else if (split.length == 2) {
type = split[1];
} else {
type = split[2];
}
String source = m.getName();
List<Tuple2<String, String>> elements = new ArrayList<>();
if ("GRD".equals(type)) {
Event concreteEvent = m.getEvent(split[0]);
for (Event event : concreteEvent.getRefines()) {
if (event.getGuards().getElement(split[1]) != null) {
EventBGuard guard = event.getGuards().getElement(split[1]);
elements.add(new Tuple2<>("event", event.getName()));
elements.add(new Tuple2<>("guard", guard.getName()));
}
}
elements.add(new Tuple2<>("event", concreteEvent.getName()));
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
} else if ("INV".equals(type)) {
elements.add(new Tuple2<>("event", "invariant"));
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
} else if ("THM".equals(type)) {
if (split.length == 2) {
elements.add(new Tuple2<>("invariant", split[0]));
} else {
elements.add(new Tuple2<>("guard", split[1]));
elements.add(new Tuple2<>("event", split[0]));
}
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
} else if ("WD".equals(type)) {
if (split.length == 2) {
elements.add(new Tuple2<>("invariant", split[0]));
} else {
Event event = m.getEvent(split[0]);
if (event.getActions().getElement(split[1]) != null) {
elements.add(new Tuple2<>("event", event.getName()));
elements.add(new Tuple2<>("action", split[1]));
} else {
elements.add(new Tuple2<>("event", event.getName()));
elements.add(new Tuple2<>("guard", split[1]));
}
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
}
} else {
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
}
}
}
use of de.prob.util.Tuple2 in project prob2 by bendisposto.
the class ProofExtractor method addProofs.
private void addProofs(final Context c) {
for (Map.Entry<String, String> entry : descriptions.entrySet()) {
String name = entry.getKey();
String desc = entry.getValue();
boolean isDischarged = discharged.contains(name);
String[] split = name.split("/");
String type;
if (split.length == 1) {
type = split[0];
} else if (split.length == 2) {
type = split[1];
} else {
type = split[2];
}
String source = c.getName();
List<Tuple2<String, String>> elements = new ArrayList<>();
if ("THM".equals(type) || "WD".equals(type)) {
elements.add(new Tuple2<>("axiom", split[0]));
}
proofs.add(new ProofObligation(source, name, isDischarged, desc, elements));
}
}
Aggregations