From 8a7e12511b7b3e36158f87fc3804c36c0c95a86d Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Sat, 1 Apr 2023 12:59:23 +0200 Subject: [PATCH 001/124] IcfgToChcConcurrent: some documentation and minor refactoring --- .../concurrent/IcfgToChcConcurrent.java | 169 ++++++++++++++---- 1 file changed, 131 insertions(+), 38 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java index 597b84a67fc..28c2f312a54 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java @@ -51,14 +51,38 @@ public class IcfgToChcConcurrent { private final ManagedScript mManagedScript; + // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this + // integer as value iff control is in the given location private final NestedMap2 mLocationIndices; + + // maps each thread template (identified by procedure name) to the number of instances private final Map mNumberOfThreads; + + // used as location for threads that are not currently running private final Term mBottomLocation; + private final HcPredicateSymbol mPredicate; private final HcSymbolTable mHcSymbolTable; + + // list of "head vars" (?), in the order as given to the CHC predicate + // these variables are always used in the head of any clause generated by this class private final List mDefaultHeadVars; + + /** + * maps a number i to the variable used for the i-th argument of the CHC predicate + */ private final BidirectionalMap mPositions2Vars; + /** + * + * @param numberOfThreads + * Maps thread names to the number of instances to include in the Horn clause system + * @param managedScript + * @param cfgSmtToolkit + * @param hcSymbolTable + * @param variableFilter + * + */ public IcfgToChcConcurrent(final Map numberOfThreads, final ManagedScript managedScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable hcSymbolTable, final Predicate variableFilter) { @@ -70,16 +94,20 @@ public IcfgToChcConcurrent(final Map numberOfThreads, final Man mNumberOfThreads = new LinkedHashMap<>(numberOfThreads); mLocationIndices = new NestedMap2<>(); mBottomLocation = numeral(-1); + final Map> localVariables = new HashMap<>(); - mPositions2Vars = new BidirectionalMap<>(); for (final String proc : mNumberOfThreads.keySet()) { localVariables.put(proc, symbolTable.getLocals(proc).stream().filter(variableFilter).collect(Collectors.toList())); } + + mPositions2Vars = new BidirectionalMap<>(); initializeDefaultVars(globalVariables, localVariables); + final List sorts = IntStream.range(0, mPositions2Vars.size()) .mapToObj(x -> mPositions2Vars.get(x).getSort()).collect(Collectors.toList()); mPredicate = hcSymbolTable.getOrConstructHornClausePredicateSymbol(FUNCTION_NAME, sorts); + mDefaultHeadVars = IntStream.range(0, mPositions2Vars.size()) .mapToObj(x -> constructHeadVar(mPositions2Vars.get(x), x)).collect(Collectors.toList()); } @@ -92,16 +120,20 @@ private void initializeDefaultVars(final Collection globalVariables final Map> localVariables) { int i = 0; for (final IProgramVar v : globalVariables) { - mPositions2Vars.put(i++, new HcGlobalVar(v)); + mPositions2Vars.put(i, new HcGlobalVar(v)); + i++; } for (final Entry entry : mNumberOfThreads.entrySet()) { final String proc = entry.getKey(); final List localVars = localVariables.get(proc); for (int j = 0; j < entry.getValue(); j++) { // Location - mPositions2Vars.put(i++, new HcLocationVar(proc, j, getIntSort())); + mPositions2Vars.put(i, new HcLocationVar(proc, j, getIntSort())); + i++; + for (final IProgramVar v : localVars) { - mPositions2Vars.put(i++, new HcLocalVar(v, j)); + mPositions2Vars.put(i, new HcLocalVar(v, j)); + i++; } } } @@ -133,6 +165,7 @@ private Term getLocIndexTerm(final IcfgLocation loc, final String proc) { return numeral(index); } + // pc_0 = l_0 -> Inv(pc_0, ...) public HornClause getInitialClause(final Collection initialLocations) { final NestedMap2 locationMap = new NestedMap2<>(); for (final Entry entry : mNumberOfThreads.entrySet()) { @@ -147,23 +180,57 @@ public HornClause getInitialClause(final Collection initialLocatio return constructHornClause(getConstraintFromLocationMap(locationMap), List.of(), Set.of()); } + /** + * Constructs a Horn clause with a given body and the default head. + * + * @param constraint + * The SMT constraint in the clause body + * @param bodyArguments + * Each list of terms is used as arguments for an invocation of {@link #mPredicate} in the body + * @param bodyVars + * Variables used in the bodyArguments. These will be universally quanmBodyVariablestified in the clause. + * @return A Horn clause with a body built from the given arguments, and a head consisting of an {@link #mPredicate} + * invocation with the default variables ({@link #mDefaultHeadVars}). + */ private HornClause constructHornClause(final Term constraint, final List> bodyArguments, final Set bodyVars) { return new HornClause(mManagedScript, mHcSymbolTable, constraint, mPredicate, mDefaultHeadVars, Collections.nCopies(bodyArguments.size(), mPredicate), bodyArguments, bodyVars); } + /** + * Constructs a constraint that specifies control locations. + * + * @param locationMap + * A map from thread template (i.e. procedure name) and instance number to a term representing the + * respective location. + * @return A conjunction of equalities between the default variables for control locations + * ({@link #mDefaultHeadVars}) and the locations specified by the map + */ private Term getConstraintFromLocationMap(final NestedMap2 locationMap) { final List constraints = new ArrayList<>(); for (final var triple : locationMap.entrySet()) { - final HcLocationVar locVar = new HcLocationVar(triple.getFirst(), triple.getSecond(), getIntSort()); - final int index = mPositions2Vars.inverse().get(locVar); - final Term term = mDefaultHeadVars.get(index).getTerm(); - constraints.add(SmtUtils.binaryEquality(getScript(), term, triple.getThird())); + final var constraint = getLocationConstraint(triple.getFirst(), triple.getSecond(), triple.getThird()); + constraints.add(constraint); } return SmtUtils.and(getScript(), constraints); } + /** + * Constructs a constraint that specifies a single control location. + * + * @return Equality between the default variable for the given thread's control location ({@link #mDefaultHeadVars}) + * and the given location term + */ + private Term getLocationConstraint(final String proc, final int threadInstance, final Term location) { + final HcLocationVar locVar = new HcLocationVar(proc, threadInstance, getIntSort()); + final int index = mPositions2Vars.inverse().get(locVar); + final Term term = mDefaultHeadVars.get(index).getTerm(); + return SmtUtils.binaryEquality(getScript(), term, location); + } + + // list of clauses of the form + // Inv(..., pc_i, ...) /\ pc_i = l_err -> false public Collection getSafetyClauses(final Collection errorLocations) { final List result = new ArrayList<>(); final Set vars = new HashSet<>(mDefaultHeadVars); @@ -171,9 +238,7 @@ public Collection getSafetyClauses(final Collection er for (final IcfgLocation loc : errorLocations) { final String proc = loc.getProcedure(); for (int i = 0; i < mNumberOfThreads.get(proc); i++) { - final NestedMap2 locationMap = new NestedMap2<>(); - locationMap.put(proc, i, getLocIndexTerm(loc, proc)); - final Term constraint = getConstraintFromLocationMap(locationMap); + final Term constraint = getLocationConstraint(proc, i, getLocIndexTerm(loc, proc)); result.add(new HornClause(mManagedScript, mHcSymbolTable, constraint, List.of(mPredicate), List.of(bodyArgs), vars)); } @@ -181,6 +246,11 @@ public Collection getSafetyClauses(final Collection er return result; } + /** + * + * @param procs + * @return + */ private List> getCartesianProductOfIndices(final Collection procs) { List> result = List.of(Map.of()); for (final String p : procs) { @@ -197,47 +267,63 @@ private List> getCartesianProductOfIndices(final Collection return result; } + /** + * + * @param locations + * @param indexMap + * @return + */ + private NestedMap2 getLocationMap(final Collection locations, + final Map indexMap) { + final NestedMap2 locMap = new NestedMap2<>(); + for (final IcfgLocation loc : locations) { + final String proc = loc.getProcedure(); + locMap.put(proc, indexMap.get(proc), getLocIndexTerm(loc, proc)); + } + return locMap; + } + + /** + * + * @param pre + * @param edge + * @param post + * @return + */ public Collection getInductivityClauses(final List pre, final IIcfgTransition edge, final List post) { final List result = new ArrayList<>(); final Set containedProcs = Stream.concat(pre.stream(), post.stream()).map(IcfgLocation::getProcedure).collect(Collectors.toSet()); for (final Map indexMap : getCartesianProductOfIndices(containedProcs)) { - final NestedMap2 locMapIn = new NestedMap2<>(); - final NestedMap2 locMapOut = new NestedMap2<>(); - for (final IcfgLocation loc : pre) { - final String proc = loc.getProcedure(); - locMapIn.put(proc, indexMap.get(proc), getLocIndexTerm(loc, proc)); - } - for (final IcfgLocation loc : post) { - final String proc = loc.getProcedure(); - locMapOut.put(proc, indexMap.get(proc), getLocIndexTerm(loc, proc)); - } + final NestedMap2 locMapIn = getLocationMap(pre, indexMap); + final NestedMap2 locMapOut = getLocationMap(post, indexMap); + final TransFormula transformula = edge.getTransformula(); - final Map substitution = new HashMap<>(); + final Map substitution = new HashMap<>(); final List constraints = new ArrayList<>(); final List bodyArgs = getDefaultArgs(); final Set bodyVars = new HashSet<>(); + for (final var entry : mPositions2Vars.entrySet()) { final int index = entry.getKey(); final IHcReplacementVar rv = entry.getValue(); IProgramVar pv = null; if (rv instanceof HcLocalVar) { final HcLocalVar lv = (HcLocalVar) rv; - if (Objects.equals(indexMap.get(lv.getProcedure()), lv.getIndex())) { - pv = lv.getVariable(); + if (!Objects.equals(indexMap.get(lv.getProcedure()), lv.getIndex())) { + continue; } - } - if (rv instanceof HcGlobalVar) { + pv = lv.getVariable(); + } else if (rv instanceof HcGlobalVar) { final HcGlobalVar gv = (HcGlobalVar) rv; pv = gv.getVariable(); - } - if (rv instanceof HcLocationVar) { + } else if (rv instanceof HcLocationVar) { final HcLocationVar lv = (HcLocationVar) rv; final String procedure = lv.getProcedure(); - final int index2 = lv.getIndex(); - Term locIn = locMapIn.get(procedure, index2); - Term locOut = locMapOut.get(procedure, index2); + final int instanceIndex = lv.getIndex(); + Term locIn = locMapIn.get(procedure, instanceIndex); + Term locOut = locMapOut.get(procedure, instanceIndex); if (locIn == null && locOut == null) { continue; } @@ -252,10 +338,16 @@ public Collection getInductivityClauses(final List pre if (!locIn.equals(locOut)) { bodyArgs.set(index, locIn); } - } - if (pv == null) { + + // rv does not appear in transition formula, so skip the rest of the loop continue; + } else { + throw new UnsupportedOperationException("Unknown kind of variable: " + rv); } + + // TODO add HcSleepVar class, create at start, then add elseif-case above to handle it + + assert pv != null; final TermVariable inVar = transformula.getInVars().get(pv); final TermVariable outVar = transformula.getOutVars().get(pv); substitution.put(outVar, mDefaultHeadVars.get(index).getTerm()); @@ -267,6 +359,7 @@ public Collection getInductivityClauses(final List pre bodyVars.add(bv); } } + // Replace all other variables with aux-vars final Term formula = transformula.getFormula(); for (final TermVariable v : formula.getFreeVars()) { @@ -297,7 +390,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { bodyArguments.add(getDefaultArgs()); } final TransFormula transformula = edge.getTransformula(); - final Map substitution = new HashMap<>(); + final Map substitution = new HashMap<>(); final Set bodyVars = new HashSet<>(); for (final var entry : mPositions2Vars.entrySet()) { final int index = entry.getKey(); @@ -325,8 +418,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { bodyVars.add(auxVar); } } - } - if (rv instanceof HcGlobalVar) { + } else if (rv instanceof HcGlobalVar) { final IProgramVar pv = ((HcGlobalVar) rv).getVariable(); final TermVariable inVar = transformula.getInVars().get(pv); final TermVariable outVar = transformula.getOutVars().get(pv); @@ -340,8 +432,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { substitution.put(inVar, term); bodyVars.add(bv); } - } - if (rv instanceof HcLocationVar) { + } else if (rv instanceof HcLocationVar) { final HcLocationVar lv = (HcLocationVar) rv; if (lv.getProcedure().equals(procedure)) { final Term loc = getLocIndexTerm(edge.getSource(), procedure); @@ -351,6 +442,8 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { bodyArguments.get(i + 1).set(newIndex, loc); } } + } else { + throw new UnsupportedOperationException("Unknown kind of variable: " + rv); } } // Replace all other variables with aux-vars From ce90413d833ef7290188262f3ad9fa4e1185396a Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 4 Apr 2023 10:38:18 +0200 Subject: [PATCH 002/124] begin (very hacky) support for sleep sets in Horn clauses --- .../plugins/icfgtochc/IcfgToChcObserver.java | 10 +- .../concurrent/ChcProviderConcurrent.java | 19 +- .../ChcProviderConcurrentWithLbe.java | 4 +- .../icfgtochc/concurrent/HcSleepVar.java | 85 +++++ .../icfgtochc/concurrent/HcThreadIdVar.java | 85 +++++ .../concurrent/IcfgToChcConcurrent.java | 315 +++++++++++++++++- 6 files changed, 498 insertions(+), 20 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 872893c71fc..b61a6c94134 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -64,7 +64,7 @@ public class IcfgToChcObserver extends BaseObserver { private IElement mResult; // TODO: Make this a setting - private static final boolean USE_LBE_FOR_CONCURRENT_PROGRAMS = true; + private static final boolean USE_LBE_FOR_CONCURRENT_PROGRAMS = false; public IcfgToChcObserver(final ILogger logger, final IUltimateServiceProvider services) { mLogger = logger; @@ -95,7 +95,9 @@ private void processIcfg(final IIcfg icfg) { final ChcCategoryInfo chcCategoryInfo = new ChcCategoryInfo(getLogics(resultChcs, mgdScript), hasNonLinearClauses); - assert resultChcs.stream().allMatch(chc -> chc.constructFormula(mgdScript, false).getFreeVars().length == 0); + final var bad = resultChcs.stream() + .filter(chc -> chc.constructFormula(mgdScript, false).getFreeVars().length != 0).findAny(); + assert bad.isEmpty() : bad; final HornAnnot annot = new HornAnnot(icfg.getIdentifier(), mgdScript, hcSymbolTable, new ArrayList<>(resultChcs), true, chcCategoryInfo); @@ -152,12 +154,12 @@ private static boolean isReturnReachable(final IIcfg icfg) { private IChcProvider getChcProvider(final IIcfg icfg, final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { - if (IcfgUtils.isConcurrent(icfg)) { + if (true || IcfgUtils.isConcurrent(icfg)) { assert !isReturnReachable(icfg); if (USE_LBE_FOR_CONCURRENT_PROGRAMS) { return new ChcProviderConcurrentWithLbe(mgdScript, hcSymbolTable, mServices); } else { - return new ChcProviderConcurrent(mgdScript, hcSymbolTable); + return new ChcProviderConcurrent(mServices, mgdScript, hcSymbolTable); } } return new ChcProviderForCalls(mgdScript, hcSymbolTable); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java index 9d2dfaafe68..cecf8103dbc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java @@ -8,6 +8,7 @@ import java.util.Set; import java.util.stream.Collectors; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; @@ -17,6 +18,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; /** @@ -26,12 +28,15 @@ * */ public class ChcProviderConcurrent implements IChcProvider { + private final IUltimateServiceProvider mServices; private final ManagedScript mMgdScript; private final HcSymbolTable mHcSymbolTable; private static final int MAXIMUM_NUMBER_OF_THREADS = 2; - public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { + public ChcProviderConcurrent(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final HcSymbolTable hcSymbolTable) { + mServices = services; mMgdScript = mgdScript; mHcSymbolTable = hcSymbolTable; } @@ -59,10 +64,20 @@ public Collection getHornClauses(final IIcfg icfg) { } } } + + numberOfThreads.clear(); + numberOfThreads.put("thread", 2); + unboundedThreads.clear(); + unboundedThreads.add("thread"); + + final var independence = new SemanticIndependenceRelation<>(mServices, mMgdScript, false, true); + final var locations = icfg.getProgramPoints().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); final IcfgToChcConcurrent factory = new IcfgToChcConcurrent(numberOfThreads, mMgdScript, - icfg.getCfgSmtToolkit(), mHcSymbolTable, x -> true); + icfg.getCfgSmtToolkit(), mHcSymbolTable, x -> true, locations, independence); final List result = new ArrayList<>(); result.add(factory.getInitialClause(icfg.getInitialNodes())); + // result.add(factory.getIdUniquenessClause()); final Set errorNodes = icfg.getProcedureErrorNodes().values().stream().flatMap(Set::stream).collect(Collectors.toSet()); final Map entryNodes = icfg.getProcedureEntryNodes(); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index a6cbb9d0a77..693fd88ff1a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -73,8 +73,10 @@ public Collection getHornClauses(final IIcfg icfg) { final List result = new ArrayList<>(); final List errorLocs = getLocations(petriNet.getAcceptingPlaces()).stream() .filter(x -> numberOfThreads.containsKey(x.getProcedure())).collect(Collectors.toList()); + final var locations = icfg.getProgramPoints().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); final IcfgToChcConcurrent factory = new IcfgToChcConcurrent(numberOfThreads, mMgdScript, - petrified.getCfgSmtToolkit(), mHcSymbolTable, x -> true); + petrified.getCfgSmtToolkit(), mHcSymbolTable, x -> true, locations, null); result.add(factory.getInitialClause(getLocations(petriNet.getInitialPlaces()))); result.addAll(factory.getSafetyClauses(errorLocs)); for (final Transition transition : petriNet.getTransitions()) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java new file mode 100644 index 00000000000..bed131eeceb --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Objects; + +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; + +public class HcSleepVar implements IHcReplacementVar { + private static final String SORT = "Int"; + + private final Sort mSort; + private final String mThreadTemplateName; + private final int mInstanceIndex; + + public HcSleepVar(final Script script, final String threadTemplateName, final int instanceIndex) { + mSort = script.sort(SORT); + mThreadTemplateName = threadTemplateName; + mInstanceIndex = instanceIndex; + } + + @Override + public Sort getSort() { + return mSort; + } + + public String getThreadTemplateName() { + return mThreadTemplateName; + } + + public int getInstanceIndex() { + return mInstanceIndex; + } + + @Override + public String toString() { + return "sleep_" + IcfgToChcConcurrentUtils.getReadableString(mThreadTemplateName) + "_" + (mInstanceIndex + 1); + } + + @Override + public int hashCode() { + return Objects.hash(mInstanceIndex, mThreadTemplateName); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final HcSleepVar other = (HcSleepVar) obj; + return mInstanceIndex == other.mInstanceIndex && Objects.equals(mThreadTemplateName, other.mThreadTemplateName); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java new file mode 100644 index 00000000000..2c452d52bde --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Objects; + +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; + +public class HcThreadIdVar implements IHcReplacementVar { + private static final String SORT = "Int"; + + private final Sort mSort; + private final String mThreadTemplateName; + private final int mInstanceIndex; + + public HcThreadIdVar(final Script script, final String threadTemplateName, final int instanceIndex) { + mSort = script.sort(SORT); + mThreadTemplateName = threadTemplateName; + mInstanceIndex = instanceIndex; + } + + @Override + public Sort getSort() { + return mSort; + } + + public String getThreadTemplateName() { + return mThreadTemplateName; + } + + public int getInstanceIndex() { + return mInstanceIndex; + } + + @Override + public String toString() { + return "id_" + IcfgToChcConcurrentUtils.getReadableString(mThreadTemplateName) + "_" + (mInstanceIndex + 1); + } + + @Override + public int hashCode() { + return Objects.hash(mInstanceIndex, mThreadTemplateName); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final HcThreadIdVar other = (HcThreadIdVar) obj; + return mInstanceIndex == other.mInstanceIndex && Objects.equals(mThreadTemplateName, other.mThreadTemplateName); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java index 28c2f312a54..3f3960fa6cc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java @@ -17,6 +17,8 @@ import java.util.stream.IntStream; import java.util.stream.Stream; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; import de.uni_freiburg.informatik.ultimate.lib.chc.HcBodyVar; import de.uni_freiburg.informatik.ultimate.lib.chc.HcHeadVar; import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; @@ -39,6 +41,7 @@ import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; /** * Class to create horn-clauses for given edges to create thread-modular proofs. @@ -53,7 +56,7 @@ public class IcfgToChcConcurrent { // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this // integer as value iff control is in the given location - private final NestedMap2 mLocationIndices; + private final NestedMap2 mLocationIndices = new NestedMap2<>(); // maps each thread template (identified by procedure name) to the number of instances private final Map mNumberOfThreads; @@ -68,10 +71,18 @@ public class IcfgToChcConcurrent { // these variables are always used in the head of any clause generated by this class private final List mDefaultHeadVars; + private final NestedMap2 mSleepVars = new NestedMap2<>(); + private final NestedMap2 mLocationsVars = new NestedMap2<>(); + private final NestedMap2 mIdVars = new NestedMap2<>(); + + private final Map> mThreadLocations; + /** * maps a number i to the variable used for the i-th argument of the CHC predicate */ - private final BidirectionalMap mPositions2Vars; + private final BidirectionalMap mPositions2Vars = new BidirectionalMap<>(); + + private final IIndependenceRelation> mIndependence; /** * @@ -85,23 +96,23 @@ public class IcfgToChcConcurrent { */ public IcfgToChcConcurrent(final Map numberOfThreads, final ManagedScript managedScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable hcSymbolTable, - final Predicate variableFilter) { + final Predicate variableFilter, final Map> threadLocations, + final IIndependenceRelation> independence) { final IIcfgSymbolTable symbolTable = cfgSmtToolkit.getSymbolTable(); mHcSymbolTable = hcSymbolTable; mManagedScript = managedScript; final List globalVariables = symbolTable.getGlobals().stream().filter(variableFilter).collect(Collectors.toList()); mNumberOfThreads = new LinkedHashMap<>(numberOfThreads); - mLocationIndices = new NestedMap2<>(); mBottomLocation = numeral(-1); + mThreadLocations = threadLocations; + mIndependence = independence; final Map> localVariables = new HashMap<>(); for (final String proc : mNumberOfThreads.keySet()) { localVariables.put(proc, symbolTable.getLocals(proc).stream().filter(variableFilter).collect(Collectors.toList())); } - - mPositions2Vars = new BidirectionalMap<>(); initializeDefaultVars(globalVariables, localVariables); final List sorts = IntStream.range(0, mPositions2Vars.size()) @@ -127,8 +138,22 @@ private void initializeDefaultVars(final Collection globalVariables final String proc = entry.getKey(); final List localVars = localVariables.get(proc); for (int j = 0; j < entry.getValue(); j++) { + // thread ID + final var id = new HcThreadIdVar(getScript(), proc, j); + mIdVars.put(proc, j, id); + mPositions2Vars.put(i, id); + i++; + // Location - mPositions2Vars.put(i, new HcLocationVar(proc, j, getIntSort())); + final var loc = new HcLocationVar(proc, j, getIntSort()); + mLocationsVars.put(proc, j, loc); + mPositions2Vars.put(i, loc); + i++; + + // sleep set + final var sleep = new HcSleepVar(getScript(), proc, j); + mSleepVars.put(proc, j, sleep); + mPositions2Vars.put(i, sleep); i++; for (final IProgramVar v : localVars) { @@ -175,9 +200,40 @@ public HornClause getInitialClause(final Collection initialLocatio } for (final IcfgLocation loc : initialLocations) { final String proc = loc.getProcedure(); - locationMap.put(proc, 0, getLocIndexTerm(loc, proc)); + for (int i = 0; i < mNumberOfThreads.get(proc); i++) { + locationMap.put(proc, i, getLocIndexTerm(loc, proc)); + } } - return constructHornClause(getConstraintFromLocationMap(locationMap), List.of(), Set.of()); + final var locConstraint = getConstraintFromLocationMap(locationMap); + + final var idConstraints = new ArrayList(); + // final var instances = mNumberOfThreads.entrySet().stream() + // .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) + // .collect(Collectors.toList()); + // for (int i = 0; i < instances.size(); ++i) { + // final var first = instances.get(i); + // final var firstIndex = + // mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + // final var firstId = mDefaultHeadVars.get(firstIndex); + // + // for (int j = i + 1; j < instances.size(); ++j) { + // final var second = instances.get(j); + // final var secondIndex = mPositions2Vars.inverse() + // .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + // final var secondId = mDefaultHeadVars.get(secondIndex); + // + // idConstraints.add(SmtUtils.distinct(getScript(), firstId.getTerm(), secondId.getTerm())); + // } + // } + + // sleep set initially empty + final var sleepConstraints = mSleepVars.values() + .map(sv -> SmtUtils.binaryEquality(getScript(), + mDefaultHeadVars.get(mPositions2Vars.inverse().get(sv)).getTerm(), numeral(0))) + .collect(Collectors.toList()); + + return constructHornClause(SmtUtils.and(getScript(), locConstraint, SmtUtils.and(getScript(), sleepConstraints), + SmtUtils.and(getScript(), idConstraints)), List.of(), Set.of()); } /** @@ -292,6 +348,8 @@ private NestedMap2 getLocationMap(final Collection getInductivityClauses(final List pre, final IIcfgTransition edge, final List post) { + final String activeProcedure = edge.getPrecedingProcedure(); + final List result = new ArrayList<>(); final Set containedProcs = Stream.concat(pre.stream(), post.stream()).map(IcfgLocation::getProcedure).collect(Collectors.toSet()); @@ -341,12 +399,91 @@ public Collection getInductivityClauses(final List pre // rv does not appear in transition formula, so skip the rest of the loop continue; + } else if (rv instanceof HcSleepVar) { + final var sv = (HcSleepVar) rv; + final var activeInstanceIndex = indexMap.get(sv.getThreadTemplateName()); + if (Objects.equals(sv.getInstanceIndex(), activeInstanceIndex)) { + // this is the sleep variable for the active thread + final var bv = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); + bodyVars.add(bv); + bodyArgs.set(index, bv.getTerm()); + + // ensure that the active thread is not sleeping + constraints.add(SmtUtils.binaryEquality(getScript(), bv.getTerm(), numeral(0))); + } else { + final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); + bodyVars.add(oldSleep); + bodyArgs.set(index, oldSleep.getTerm()); + final var newSleep = mDefaultHeadVars.get(index).getTerm(); + + final var hcLoc = + new HcLocationVar(sv.getThreadTemplateName(), sv.getInstanceIndex(), getIntSort()); + final int locIndex = mPositions2Vars.inverse().get(hcLoc); + final var locVar = mDefaultHeadVars.get(locIndex); + + final var currentId = mDefaultHeadVars.get(mPositions2Vars.inverse() + .get(new HcThreadIdVar(getScript(), activeProcedure, activeInstanceIndex))); + final var otherId = mDefaultHeadVars.get(mPositions2Vars.inverse().get( + new HcThreadIdVar(getScript(), sv.getThreadTemplateName(), sv.getInstanceIndex()))); + + // update sleep variable depending on commutativity and thread ID ordering + final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); + constraints + .add(SmtUtils.binaryBooleanEquality(getScript(), + SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), + SmtUtils.or(getScript(), SmtUtils.and(getScript(), + SmtUtils.greater(getScript(), otherId.getTerm(), currentId.getTerm()), + SmtUtils.binaryEquality(getScript(), oldSleep.getTerm(), numeral(0))), + nonCommConstr))); + } + // else if ((activeInstanceIndex != null && sv.getInstanceIndex() < activeInstanceIndex) + // || (activeInstanceIndex == null + // && sv.getThreadTemplateName().compareTo(activeProcedure) < 0)) { + // final var newSleep = mDefaultHeadVars.get(index).getTerm(); + // + // final var locVar = mLocationsVars.get(sv.getThreadTemplateName(), sv.getInstanceIndex()); + // final var locVarIndex = mPositions2Vars.inverse().get(locVar); + // final var locVar2 = + // mHcSymbolTable.getOrConstructBodyVar(mPredicate, locVarIndex, locVar.getSort(), locVar); + // bodyVars.add(locVar2); + // bodyArgs.set(locVarIndex, locVar2.getTerm()); + // + // // set newSleep to true/false depending on commutativity + // final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar2.getTerm(), edge); + // constraints.add(SmtUtils.binaryBooleanEquality(getScript(), + // SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), nonCommConstr)); + // } else { + // assert (activeInstanceIndex != null && sv.getInstanceIndex() > activeInstanceIndex) + // || (activeInstanceIndex == null + // && sv.getThreadTemplateName().compareTo(activeProcedure) > 0); + // + // final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); + // bodyVars.add(oldSleep); + // bodyArgs.set(index, oldSleep.getTerm()); + // final var newSleep = mDefaultHeadVars.get(index).getTerm(); + // + // final var locVar = mLocationsVars.get(sv.getThreadTemplateName(), sv.getInstanceIndex()); + // final var locVarIndex = mPositions2Vars.inverse().get(locVar); + // final var locVar2 = + // mHcSymbolTable.getOrConstructBodyVar(mPredicate, locVarIndex, locVar.getSort(), locVar); + // bodyVars.add(locVar2); + // bodyArgs.set(locVarIndex, locVar2.getTerm()); + // + // // set newSleep to old/false depending on commutativity + // final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar2.getTerm(), edge); + // constraints.add(SmtUtils.ite(getScript(), nonCommConstr, + // SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), + // SmtUtils.binaryEquality(getScript(), newSleep, oldSleep.getTerm()))); + // } + continue; + } else if (rv instanceof HcThreadIdVar) { + // nothing to do here: the default argument in the body is already the headVar + // this is correct, because the thread ID never changes + continue; } else { throw new UnsupportedOperationException("Unknown kind of variable: " + rv); } - // TODO add HcSleepVar class, create at start, then add elseif-case above to handle it - assert pv != null; final TermVariable inVar = transformula.getInVars().get(pv); final TermVariable outVar = transformula.getOutVars().get(pv); @@ -360,6 +497,26 @@ public Collection getInductivityClauses(final List pre } } + // add ID constraints + final var instances = mNumberOfThreads.entrySet().stream() + .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) + .collect(Collectors.toList()); + for (int i = 0; i < instances.size(); ++i) { + final var first = instances.get(i); + final var firstIndex = + mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstId = mDefaultHeadVars.get(firstIndex); + + for (int j = i + 1; j < instances.size(); ++j) { + final var second = instances.get(j); + final var secondIndex = mPositions2Vars.inverse() + .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondId = mDefaultHeadVars.get(secondIndex); + + constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); + } + } + // Replace all other variables with aux-vars final Term formula = transformula.getFormula(); for (final TermVariable v : formula.getFreeVars()) { @@ -378,10 +535,55 @@ public Collection getInductivityClauses(final List pre return result; } + private Term getNonCommutativityConstraint(final HcSleepVar sv, final Term locVar, + final IIcfgTransition currentEdge) { + + final var nonCommLocations = new HashSet(); + for (final var loc : mThreadLocations.get(sv.getThreadTemplateName())) { + if (loc.getOutgoingEdges().stream() + .anyMatch(edge -> mIndependence.isIndependent(null, edge, currentEdge) != Dependence.INDEPENDENT)) { + nonCommLocations.add(getLocIndexTerm(loc, sv.getThreadTemplateName())); + } + } + + nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(getScript(), locVar, loc)) + .collect(Collectors.toList()); + return SmtUtils.and(getScript(), nonCommLocations.stream() + .map(loc -> SmtUtils.binaryEquality(getScript(), locVar, loc)).collect(Collectors.toList())); + } + public Collection getInductivityClauses(final IIcfgTransition edge) { return getInductivityClauses(List.of(edge.getSource()), edge, List.of(edge.getTarget())); } + public HornClause getIdUniquenessClause() { + final var bodyArgs = getDefaultArgs(); + final var constraints = new ArrayList(); + + final var instances = mNumberOfThreads.entrySet().stream() + .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) + .collect(Collectors.toList()); + + for (int i = 0; i < instances.size(); ++i) { + final var first = instances.get(i); + final var firstIndex = + mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstId = bodyArgs.get(firstIndex); + + for (int j = i + 1; j < instances.size(); ++j) { + final var second = instances.get(j); + final var secondIndex = mPositions2Vars.inverse() + .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondId = bodyArgs.get(secondIndex); + + constraints.add(SmtUtils.binaryEquality(getScript(), firstId, secondId)); + } + } + + return new HornClause(mManagedScript, mHcSymbolTable, SmtUtils.or(getScript(), constraints), + List.of(mPredicate), List.of(bodyArgs), Set.copyOf(mDefaultHeadVars)); + } + public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final String procedure = edge.getPrecedingProcedure(); final int n = mNumberOfThreads.get(procedure); @@ -392,6 +594,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final TransFormula transformula = edge.getTransformula(); final Map substitution = new HashMap<>(); final Set bodyVars = new HashSet<>(); + final var constraints = new ArrayList(); for (final var entry : mPositions2Vars.entrySet()) { final int index = entry.getKey(); final IHcReplacementVar rv = entry.getValue(); @@ -442,10 +645,96 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { bodyArguments.get(i + 1).set(newIndex, loc); } } + } else if (rv instanceof HcSleepVar) { + final var sv = (HcSleepVar) rv; + final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); + bodyVars.add(oldSleep); + + // insert the variable in each body clause (in one, it may be replaced below by the interfering thread) + for (int i = 0; i <= n; ++i) { + bodyArguments.get(i).set(index, oldSleep.getTerm()); + } + + final var newSleep = mDefaultHeadVars.get(index); + + final var hcLoc = new HcLocationVar(sv.getThreadTemplateName(), sv.getInstanceIndex(), getIntSort()); + final int locIndex = mPositions2Vars.inverse().get(hcLoc); + final var locVar = mDefaultHeadVars.get(locIndex); + + final var currentId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), + new HcThreadIdVar(getScript(), procedure, -1)); + bodyVars.add(currentId); + final var otherId = mDefaultHeadVars.get(mPositions2Vars.inverse() + .get(new HcThreadIdVar(getScript(), sv.getThreadTemplateName(), sv.getInstanceIndex()))); + + // update sleep variable depending on commutativity and thread ID ordering + final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); + constraints.add(SmtUtils.binaryBooleanEquality(getScript(), + SmtUtils.binaryEquality(getScript(), newSleep.getTerm(), numeral(0)), + SmtUtils.or(getScript(), + SmtUtils.and(getScript(), + SmtUtils.greater(getScript(), otherId.getTerm(), currentId.getTerm()), + SmtUtils.binaryEquality(getScript(), oldSleep.getTerm(), numeral(0))), + nonCommConstr))); + + // special case: add the constraint that the interfering thread does not sleep + if (sv.getThreadTemplateName().equals(procedure)) { + final var bodyVar = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, sv.getSort(), sv); + bodyVars.add(bodyVar); + + // for each non-interference premise, insert the variable in the index for the interfering thread + for (int i = 0; i < n; ++i) { + final int newIndex = mPositions2Vars.inverse() + .get(new HcSleepVar(getScript(), sv.getThreadTemplateName(), i)); + bodyArguments.get(i + 1).set(newIndex, bodyVar.getTerm()); + } + + // add constraint ensuring that the interfering thread is not sleeping + constraints.add(SmtUtils.binaryEquality(getScript(), bodyVar.getTerm(), numeral(0))); + } + continue; + } else if (rv instanceof HcThreadIdVar) { + final var iv = (HcThreadIdVar) rv; + if (iv.getThreadTemplateName().equals(procedure)) { + final var id = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), + new HcThreadIdVar(getScript(), procedure, -1)); + bodyVars.add(id); + for (int i = 0; i < n; ++i) { + final var newIndex = mPositions2Vars.inverse() + .get(new HcSleepVar(getScript(), iv.getThreadTemplateName(), i)); + bodyArguments.get(i + 1).set(newIndex, id.getTerm()); + } + } } else { throw new UnsupportedOperationException("Unknown kind of variable: " + rv); } } + + // add ID constraints + final var instances = mNumberOfThreads.entrySet().stream() + .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) + .collect(Collectors.toList()); + final var interferingId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), + new HcThreadIdVar(getScript(), procedure, -1)); + assert bodyVars.contains(interferingId); + for (int i = 0; i < instances.size(); ++i) { + final var first = instances.get(i); + final var firstIndex = + mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstId = mDefaultHeadVars.get(firstIndex); + + for (int j = i + 1; j < instances.size(); ++j) { + final var second = instances.get(j); + final var secondIndex = mPositions2Vars.inverse() + .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondId = mDefaultHeadVars.get(secondIndex); + + constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); + } + + constraints.add(SmtUtils.distinct(getScript(), interferingId.getTerm(), firstId.getTerm())); + } + // Replace all other variables with aux-vars final Term formula = transformula.getFormula(); for (final TermVariable v : formula.getFreeVars()) { @@ -457,8 +746,8 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { substitution.put(v, auxVar.getTerm()); bodyVars.add(auxVar); } - return constructHornClause(Substitution.apply(mManagedScript, substitution, transformula.getFormula()), - bodyArguments, bodyVars); + constraints.add(Substitution.apply(mManagedScript, substitution, transformula.getFormula())); + return constructHornClause(SmtUtils.and(getScript(), constraints), bodyArguments, bodyVars); } public interface IHcReplacementVar { From f9675a1d73d2ff352d15787b8c3ac2d768db4a0b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 4 Apr 2023 11:15:46 +0200 Subject: [PATCH 003/124] add common interface for variables specific to a thread instance --- .../icfgtochc/concurrent/HcLocalVar.java | 30 ++--- .../icfgtochc/concurrent/HcLocationVar.java | 33 +++-- .../icfgtochc/concurrent/HcSleepVar.java | 28 ++-- .../icfgtochc/concurrent/HcThreadIdVar.java | 28 ++-- .../concurrent/IHcThreadSpecificVar.java | 43 ++++++ .../concurrent/IcfgToChcConcurrent.java | 124 +++++++++--------- .../icfgtochc/concurrent/ThreadInstance.java | 67 ++++++++++ 7 files changed, 230 insertions(+), 123 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java index 99518a0d3da..67b67e4e849 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java @@ -4,32 +4,28 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; /** * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) * */ -public class HcLocalVar implements IHcReplacementVar { +public class HcLocalVar implements IHcThreadSpecificVar { private final IProgramVar mVariable; - private final int mIndex; + private final ThreadInstance mInstance; - public HcLocalVar(final IProgramVar variable, final int index) { + public HcLocalVar(final IProgramVar variable, final int instanceNumber) { mVariable = variable; - mIndex = index; + mInstance = new ThreadInstance(mVariable.getProcedure(), instanceNumber); } public IProgramVar getVariable() { return mVariable; } - public int getIndex() { - return mIndex; - } - - public String getProcedure() { - return mVariable.getProcedure(); + @Override + public ThreadInstance getThreadInstance() { + return mInstance; } @Override @@ -39,12 +35,13 @@ public Sort getSort() { @Override public String toString() { - return IcfgToChcConcurrentUtils.getReadableString(mVariable) + (mIndex + 1); + return IcfgToChcConcurrentUtils.getReadableString(mVariable) + (mInstance.getInstanceNumber() + 1); } @Override public int hashCode() { - return Objects.hash(mIndex, mVariable); + final int prime = 97; + return prime * Objects.hash(mInstance, mVariable); } @Override @@ -52,10 +49,13 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (!(obj instanceof HcLocalVar)) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { return false; } final HcLocalVar other = (HcLocalVar) obj; - return mIndex == other.mIndex && mVariable.equals(other.mVariable); + return Objects.equals(mInstance, other.mInstance) && Objects.equals(mVariable, other.mVariable); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java index f5e59644502..f1fe01879c0 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java @@ -3,30 +3,24 @@ import java.util.Objects; import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; /** * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) * */ -public class HcLocationVar implements IHcReplacementVar { - private final String mProcedure; - private final int mIndex; +public class HcLocationVar implements IHcThreadSpecificVar { + private final ThreadInstance mInstance; private final Sort mSort; - public HcLocationVar(final String procedure, final int index, final Sort sort) { - mProcedure = procedure; - mIndex = index; + public HcLocationVar(final ThreadInstance instance, final Sort sort) { + mInstance = instance; mSort = sort; } - public String getProcedure() { - return mProcedure; - } - - public int getIndex() { - return mIndex; + @Override + public ThreadInstance getThreadInstance() { + return mInstance; } @Override @@ -36,12 +30,14 @@ public Sort getSort() { @Override public String toString() { - return "loc_" + IcfgToChcConcurrentUtils.getReadableString(mProcedure) + "_" + (mIndex + 1); + return "loc_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" + + (mInstance.getInstanceNumber() + 1); } @Override public int hashCode() { - return Objects.hash(mIndex, mProcedure); + final int prime = 79; + return prime * Objects.hash(mInstance); } @Override @@ -49,10 +45,13 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (!(obj instanceof HcLocationVar)) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { return false; } final HcLocationVar other = (HcLocationVar) obj; - return mIndex == other.mIndex && mProcedure.equals(other.mProcedure); + return Objects.equals(mInstance, other.mInstance); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index bed131eeceb..e222bef9ebd 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -30,19 +30,16 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; -public class HcSleepVar implements IHcReplacementVar { +public class HcSleepVar implements IHcThreadSpecificVar { private static final String SORT = "Int"; private final Sort mSort; - private final String mThreadTemplateName; - private final int mInstanceIndex; + private final ThreadInstance mInstance; - public HcSleepVar(final Script script, final String threadTemplateName, final int instanceIndex) { + public HcSleepVar(final ThreadInstance instance, final Script script) { + mInstance = instance; mSort = script.sort(SORT); - mThreadTemplateName = threadTemplateName; - mInstanceIndex = instanceIndex; } @Override @@ -50,22 +47,21 @@ public Sort getSort() { return mSort; } - public String getThreadTemplateName() { - return mThreadTemplateName; - } - - public int getInstanceIndex() { - return mInstanceIndex; + @Override + public ThreadInstance getThreadInstance() { + return mInstance; } @Override public String toString() { - return "sleep_" + IcfgToChcConcurrentUtils.getReadableString(mThreadTemplateName) + "_" + (mInstanceIndex + 1); + return "sleep_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" + + (mInstance.getInstanceNumber() + 1); } @Override public int hashCode() { - return Objects.hash(mInstanceIndex, mThreadTemplateName); + final int prime = 31; + return prime * Objects.hash(mInstance); } @Override @@ -80,6 +76,6 @@ public boolean equals(final Object obj) { return false; } final HcSleepVar other = (HcSleepVar) obj; - return mInstanceIndex == other.mInstanceIndex && Objects.equals(mThreadTemplateName, other.mThreadTemplateName); + return Objects.equals(mInstance, other.mInstance); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java index 2c452d52bde..fa8c35b2296 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java @@ -30,19 +30,16 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; -public class HcThreadIdVar implements IHcReplacementVar { +public class HcThreadIdVar implements IHcThreadSpecificVar { private static final String SORT = "Int"; private final Sort mSort; - private final String mThreadTemplateName; - private final int mInstanceIndex; + private final ThreadInstance mInstance; - public HcThreadIdVar(final Script script, final String threadTemplateName, final int instanceIndex) { + public HcThreadIdVar(final ThreadInstance instance, final Script script) { + mInstance = instance; mSort = script.sort(SORT); - mThreadTemplateName = threadTemplateName; - mInstanceIndex = instanceIndex; } @Override @@ -50,22 +47,21 @@ public Sort getSort() { return mSort; } - public String getThreadTemplateName() { - return mThreadTemplateName; - } - - public int getInstanceIndex() { - return mInstanceIndex; + @Override + public ThreadInstance getThreadInstance() { + return mInstance; } @Override public String toString() { - return "id_" + IcfgToChcConcurrentUtils.getReadableString(mThreadTemplateName) + "_" + (mInstanceIndex + 1); + return "id_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" + + (mInstance.getInstanceNumber() + 1); } @Override public int hashCode() { - return Objects.hash(mInstanceIndex, mThreadTemplateName); + final int prime = 59; + return prime * Objects.hash(mInstance); } @Override @@ -80,6 +76,6 @@ public boolean equals(final Object obj) { return false; } final HcThreadIdVar other = (HcThreadIdVar) obj; - return mInstanceIndex == other.mInstanceIndex && Objects.equals(mThreadTemplateName, other.mThreadTemplateName); + return Objects.equals(mInstance, other.mInstance); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java new file mode 100644 index 00000000000..8f537d5efcb --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; + +public interface IHcThreadSpecificVar extends IHcReplacementVar { + ThreadInstance getThreadInstance(); + + @Deprecated + default String getThreadTemplateName() { + return getThreadInstance().getTemplateName(); + } + + @Deprecated + default int getInstanceIndex() { + return getThreadInstance().getInstanceNumber(); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java index 3f3960fa6cc..d5ff0155fdc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java @@ -41,7 +41,6 @@ import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; /** * Class to create horn-clauses for given edges to create thread-modular proofs. @@ -51,6 +50,7 @@ */ public class IcfgToChcConcurrent { private static final String FUNCTION_NAME = "Inv"; + private static final int INTERFERING_INSTANCE_ID = -1; private final ManagedScript mManagedScript; @@ -138,20 +138,22 @@ private void initializeDefaultVars(final Collection globalVariables final String proc = entry.getKey(); final List localVars = localVariables.get(proc); for (int j = 0; j < entry.getValue(); j++) { + final var instance = new ThreadInstance(proc, j); + // thread ID - final var id = new HcThreadIdVar(getScript(), proc, j); + final var id = new HcThreadIdVar(instance, getScript()); mIdVars.put(proc, j, id); mPositions2Vars.put(i, id); i++; // Location - final var loc = new HcLocationVar(proc, j, getIntSort()); + final var loc = new HcLocationVar(instance, getIntSort()); mLocationsVars.put(proc, j, loc); mPositions2Vars.put(i, loc); i++; // sleep set - final var sleep = new HcSleepVar(getScript(), proc, j); + final var sleep = new HcSleepVar(instance, getScript()); mSleepVars.put(proc, j, sleep); mPositions2Vars.put(i, sleep); i++; @@ -190,18 +192,34 @@ private Term getLocIndexTerm(final IcfgLocation loc, final String proc) { return numeral(index); } - // pc_0 = l_0 -> Inv(pc_0, ...) - public HornClause getInitialClause(final Collection initialLocations) { - final NestedMap2 locationMap = new NestedMap2<>(); + private Collection getInstances(final String template) { + final var result = new ArrayList(); + for (int i = 0; i < mNumberOfThreads.get(template); i++) { + result.add(new ThreadInstance(template, i)); + } + return result; + } + + private List getInstances() { + final var result = new ArrayList(); for (final Entry entry : mNumberOfThreads.entrySet()) { for (int i = 0; i < entry.getValue(); i++) { - locationMap.put(entry.getKey(), i, mBottomLocation); + result.add(new ThreadInstance(entry.getKey(), i)); } } + return result; + } + + // pc_0 = l_0 -> Inv(pc_0, ...) + public HornClause getInitialClause(final Collection initialLocations) { + final Map locationMap = new HashMap<>(); + for (final var instance : getInstances()) { + locationMap.put(instance, mBottomLocation); + } for (final IcfgLocation loc : initialLocations) { final String proc = loc.getProcedure(); for (int i = 0; i < mNumberOfThreads.get(proc); i++) { - locationMap.put(proc, i, getLocIndexTerm(loc, proc)); + locationMap.put(new ThreadInstance(proc, i), getLocIndexTerm(loc, proc)); } } final var locConstraint = getConstraintFromLocationMap(locationMap); @@ -263,10 +281,10 @@ private HornClause constructHornClause(final Term constraint, final List locationMap) { + private Term getConstraintFromLocationMap(final Map locationMap) { final List constraints = new ArrayList<>(); - for (final var triple : locationMap.entrySet()) { - final var constraint = getLocationConstraint(triple.getFirst(), triple.getSecond(), triple.getThird()); + for (final var pair : locationMap.entrySet()) { + final var constraint = getLocationConstraint(pair.getKey(), pair.getValue()); constraints.add(constraint); } return SmtUtils.and(getScript(), constraints); @@ -278,8 +296,8 @@ private Term getConstraintFromLocationMap(final NestedMap2 getSafetyClauses(final Collection er final List bodyArgs = getDefaultArgs(); for (final IcfgLocation loc : errorLocations) { final String proc = loc.getProcedure(); - for (int i = 0; i < mNumberOfThreads.get(proc); i++) { - final Term constraint = getLocationConstraint(proc, i, getLocIndexTerm(loc, proc)); + for (final var instance : getInstances(proc)) { + final Term constraint = getLocationConstraint(instance, getLocIndexTerm(loc, proc)); result.add(new HornClause(mManagedScript, mHcSymbolTable, constraint, List.of(mPredicate), List.of(bodyArgs), vars)); } @@ -369,7 +387,7 @@ public Collection getInductivityClauses(final List pre IProgramVar pv = null; if (rv instanceof HcLocalVar) { final HcLocalVar lv = (HcLocalVar) rv; - if (!Objects.equals(indexMap.get(lv.getProcedure()), lv.getIndex())) { + if (!Objects.equals(indexMap.get(lv.getThreadTemplateName()), lv.getInstanceIndex())) { continue; } pv = lv.getVariable(); @@ -378,8 +396,8 @@ public Collection getInductivityClauses(final List pre pv = gv.getVariable(); } else if (rv instanceof HcLocationVar) { final HcLocationVar lv = (HcLocationVar) rv; - final String procedure = lv.getProcedure(); - final int instanceIndex = lv.getIndex(); + final String procedure = lv.getThreadTemplateName(); + final int instanceIndex = lv.getInstanceIndex(); Term locIn = locMapIn.get(procedure, instanceIndex); Term locOut = locMapOut.get(procedure, instanceIndex); if (locIn == null && locOut == null) { @@ -416,15 +434,14 @@ public Collection getInductivityClauses(final List pre bodyArgs.set(index, oldSleep.getTerm()); final var newSleep = mDefaultHeadVars.get(index).getTerm(); - final var hcLoc = - new HcLocationVar(sv.getThreadTemplateName(), sv.getInstanceIndex(), getIntSort()); + final var hcLoc = new HcLocationVar(sv.getThreadInstance(), getIntSort()); final int locIndex = mPositions2Vars.inverse().get(hcLoc); final var locVar = mDefaultHeadVars.get(locIndex); - final var currentId = mDefaultHeadVars.get(mPositions2Vars.inverse() - .get(new HcThreadIdVar(getScript(), activeProcedure, activeInstanceIndex))); - final var otherId = mDefaultHeadVars.get(mPositions2Vars.inverse().get( - new HcThreadIdVar(getScript(), sv.getThreadTemplateName(), sv.getInstanceIndex()))); + final var currentId = mDefaultHeadVars.get(mPositions2Vars.inverse().get(new HcThreadIdVar( + new ThreadInstance(activeProcedure, activeInstanceIndex), getScript()))); + final var otherId = mDefaultHeadVars.get( + mPositions2Vars.inverse().get(new HcThreadIdVar(sv.getThreadInstance(), getScript()))); // update sleep variable depending on commutativity and thread ID ordering final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); @@ -498,19 +515,15 @@ public Collection getInductivityClauses(final List pre } // add ID constraints - final var instances = mNumberOfThreads.entrySet().stream() - .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) - .collect(Collectors.toList()); + final var instances = getInstances(); for (int i = 0; i < instances.size(); ++i) { final var first = instances.get(i); - final var firstIndex = - mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); final var firstId = mDefaultHeadVars.get(firstIndex); for (int j = i + 1; j < instances.size(); ++j) { final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse() - .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); final var secondId = mDefaultHeadVars.get(secondIndex); constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); @@ -560,20 +573,15 @@ public HornClause getIdUniquenessClause() { final var bodyArgs = getDefaultArgs(); final var constraints = new ArrayList(); - final var instances = mNumberOfThreads.entrySet().stream() - .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) - .collect(Collectors.toList()); - + final var instances = getInstances(); for (int i = 0; i < instances.size(); ++i) { final var first = instances.get(i); - final var firstIndex = - mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); final var firstId = bodyArgs.get(firstIndex); for (int j = i + 1; j < instances.size(); ++j) { final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse() - .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); final var secondId = bodyArgs.get(secondIndex); constraints.add(SmtUtils.binaryEquality(getScript(), firstId, secondId)); @@ -586,6 +594,8 @@ public HornClause getIdUniquenessClause() { public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final String procedure = edge.getPrecedingProcedure(); + final var interferingThread = new ThreadInstance(procedure, INTERFERING_INSTANCE_ID); + final int n = mNumberOfThreads.get(procedure); final List> bodyArguments = new ArrayList<>(); for (int i = 0; i <= n; i++) { @@ -600,7 +610,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final IHcReplacementVar rv = entry.getValue(); if (rv instanceof HcLocalVar) { final HcLocalVar lv = (HcLocalVar) rv; - if (lv.getProcedure().equals(procedure)) { + if (lv.getThreadTemplateName().equals(procedure)) { final IProgramVar pv = lv.getVariable(); final TermVariable inVar = transformula.getInVars().get(pv); final TermVariable outVar = transformula.getOutVars().get(pv); @@ -637,11 +647,11 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { } } else if (rv instanceof HcLocationVar) { final HcLocationVar lv = (HcLocationVar) rv; - if (lv.getProcedure().equals(procedure)) { + if (lv.getThreadTemplateName().equals(procedure)) { final Term loc = getLocIndexTerm(edge.getSource(), procedure); for (int i = 0; i < n; i++) { - final int newIndex = - mPositions2Vars.inverse().get(new HcLocationVar(procedure, i, getIntSort())); + final int newIndex = mPositions2Vars.inverse() + .get(new HcLocationVar(new ThreadInstance(procedure, i), getIntSort())); bodyArguments.get(i + 1).set(newIndex, loc); } } @@ -657,15 +667,15 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final var newSleep = mDefaultHeadVars.get(index); - final var hcLoc = new HcLocationVar(sv.getThreadTemplateName(), sv.getInstanceIndex(), getIntSort()); + final var hcLoc = new HcLocationVar(sv.getThreadInstance(), getIntSort()); final int locIndex = mPositions2Vars.inverse().get(hcLoc); final var locVar = mDefaultHeadVars.get(locIndex); final var currentId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(getScript(), procedure, -1)); + new HcThreadIdVar(interferingThread, getScript())); bodyVars.add(currentId); - final var otherId = mDefaultHeadVars.get(mPositions2Vars.inverse() - .get(new HcThreadIdVar(getScript(), sv.getThreadTemplateName(), sv.getInstanceIndex()))); + final var otherId = mDefaultHeadVars + .get(mPositions2Vars.inverse().get(new HcThreadIdVar(sv.getThreadInstance(), getScript()))); // update sleep variable depending on commutativity and thread ID ordering final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); @@ -685,7 +695,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { // for each non-interference premise, insert the variable in the index for the interfering thread for (int i = 0; i < n; ++i) { final int newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(getScript(), sv.getThreadTemplateName(), i)); + .get(new HcSleepVar(new ThreadInstance(sv.getThreadTemplateName(), i), getScript())); bodyArguments.get(i + 1).set(newIndex, bodyVar.getTerm()); } @@ -697,11 +707,11 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { final var iv = (HcThreadIdVar) rv; if (iv.getThreadTemplateName().equals(procedure)) { final var id = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(getScript(), procedure, -1)); + new HcThreadIdVar(interferingThread, getScript())); bodyVars.add(id); for (int i = 0; i < n; ++i) { final var newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(getScript(), iv.getThreadTemplateName(), i)); + .get(new HcSleepVar(new ThreadInstance(iv.getThreadTemplateName(), i), getScript())); bodyArguments.get(i + 1).set(newIndex, id.getTerm()); } } @@ -711,22 +721,18 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { } // add ID constraints - final var instances = mNumberOfThreads.entrySet().stream() - .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) - .collect(Collectors.toList()); + final var instances = getInstances(); final var interferingId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(getScript(), procedure, -1)); + new HcThreadIdVar(interferingThread, getScript())); assert bodyVars.contains(interferingId); for (int i = 0; i < instances.size(); ++i) { final var first = instances.get(i); - final var firstIndex = - mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); + final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); final var firstId = mDefaultHeadVars.get(firstIndex); for (int j = i + 1; j < instances.size(); ++j) { final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse() - .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); + final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); final var secondId = mDefaultHeadVars.get(secondIndex); constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java new file mode 100644 index 00000000000..346ba360d35 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Objects; + +public final class ThreadInstance { + private final String mTemplateName; + private final int mInstanceNumber; + + public ThreadInstance(final String templateName, final int instanceNumber) { + mTemplateName = templateName; + mInstanceNumber = instanceNumber; + } + + public String getTemplateName() { + return mTemplateName; + } + + public int getInstanceNumber() { + return mInstanceNumber; + } + + @Override + public int hashCode() { + return Objects.hash(mInstanceNumber, mTemplateName); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ThreadInstance other = (ThreadInstance) obj; + return mInstanceNumber == other.mInstanceNumber && Objects.equals(mTemplateName, other.mTemplateName); + } +} From ddc58b651c8475592ac82eac1347b611c313e551 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 4 Apr 2023 11:22:56 +0200 Subject: [PATCH 004/124] more simplification with ThreadInstance --- .../concurrent/IcfgToChcConcurrent.java | 63 +++++++++---------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java index d5ff0155fdc..fe77f051321 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java @@ -71,9 +71,9 @@ public class IcfgToChcConcurrent { // these variables are always used in the head of any clause generated by this class private final List mDefaultHeadVars; - private final NestedMap2 mSleepVars = new NestedMap2<>(); - private final NestedMap2 mLocationsVars = new NestedMap2<>(); - private final NestedMap2 mIdVars = new NestedMap2<>(); + private final Map mSleepVars = new HashMap<>(); + private final Map mLocationsVars = new HashMap<>(); + private final Map mIdVars = new HashMap<>(); private final Map> mThreadLocations; @@ -127,41 +127,34 @@ private HcHeadVar constructHeadVar(final IHcReplacementVar rv, final int index) return mHcSymbolTable.getOrConstructHeadVar(mPredicate, index, rv.getSort(), rv); } + private void addVariable(final IHcReplacementVar variable) { + mPositions2Vars.put(mPositions2Vars.size(), variable); + } + private void initializeDefaultVars(final Collection globalVariables, final Map> localVariables) { - int i = 0; for (final IProgramVar v : globalVariables) { - mPositions2Vars.put(i, new HcGlobalVar(v)); - i++; + addVariable(new HcGlobalVar(v)); } - for (final Entry entry : mNumberOfThreads.entrySet()) { - final String proc = entry.getKey(); - final List localVars = localVariables.get(proc); - for (int j = 0; j < entry.getValue(); j++) { - final var instance = new ThreadInstance(proc, j); - - // thread ID - final var id = new HcThreadIdVar(instance, getScript()); - mIdVars.put(proc, j, id); - mPositions2Vars.put(i, id); - i++; - - // Location - final var loc = new HcLocationVar(instance, getIntSort()); - mLocationsVars.put(proc, j, loc); - mPositions2Vars.put(i, loc); - i++; - - // sleep set - final var sleep = new HcSleepVar(instance, getScript()); - mSleepVars.put(proc, j, sleep); - mPositions2Vars.put(i, sleep); - i++; - - for (final IProgramVar v : localVars) { - mPositions2Vars.put(i, new HcLocalVar(v, j)); - i++; - } + for (final var instance : getInstances()) { + // thread ID + final var id = new HcThreadIdVar(instance, getScript()); + mIdVars.put(instance, id); + addVariable(id); + + // Location + final var loc = new HcLocationVar(instance, getIntSort()); + mLocationsVars.put(instance, loc); + addVariable(loc); + + // sleep set + final var sleep = new HcSleepVar(instance, getScript()); + mSleepVars.put(instance, sleep); + addVariable(sleep); + + final List localVars = localVariables.get(instance.getTemplateName()); + for (final IProgramVar v : localVars) { + addVariable(new HcLocalVar(v, instance.getInstanceNumber())); } } } @@ -245,7 +238,7 @@ public HornClause getInitialClause(final Collection initialLocatio // } // sleep set initially empty - final var sleepConstraints = mSleepVars.values() + final var sleepConstraints = mSleepVars.values().stream() .map(sv -> SmtUtils.binaryEquality(getScript(), mDefaultHeadVars.get(mPositions2Vars.inverse().get(sv)).getTerm(), numeral(0))) .collect(Collectors.toList()); From 7d637c5e1b15701950e9ce2f3a74caec509f9b9a Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 11:34:50 +0200 Subject: [PATCH 005/124] new implementation of Horn clause generation for thread-modular proofs This new implementation is meant to be easier to understand, extensible and modular. As an example, see the included implementation of sleep set reduction in the Horn clauses. The implementation is not yet completely finished, a few TODOs remain. --- .../ExtensibleHornClauseProvider.java | 74 +++ .../concurrent/HornClauseBuilder.java | 138 ++++++ .../icfgtochc/concurrent/PredicateInfo.java | 87 ++++ ...eepSetThreadModularHornClauseProvider.java | 230 +++++++++ .../ThreadModularHornClauseProvider.java | 437 ++++++++++++++++++ 5 files changed, 966 insertions(+) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java new file mode 100644 index 00000000000..2f39c1d3b0e --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.math.BigInteger; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +public abstract class ExtensibleHornClauseProvider { + protected final ManagedScript mManagedScript; + protected final Script mScript; + protected final HcSymbolTable mSymbolTable; + + public ExtensibleHornClauseProvider(final ManagedScript mgdScript, final HcSymbolTable symbolTable) { + mManagedScript = mgdScript; + mScript = mgdScript.getScript(); + mSymbolTable = symbolTable; + } + + protected final HornClauseBuilder createBuilder(final PredicateInfo predicate) { + return new HornClauseBuilder(mManagedScript, mSymbolTable, Objects.requireNonNull(predicate)); + } + + protected final HornClauseBuilder createBuilder() { + return new HornClauseBuilder(mManagedScript, mSymbolTable); + } + + protected abstract List buildAllClauses(); + + public final List getClauses() { + return buildAllClauses().stream().map(HornClauseBuilder::build).collect(Collectors.toList()); + } + + protected final Term numeral(final long n) { + return mScript.numeral(BigInteger.valueOf(n)); + } + + protected Sort getIntSort() { + return SmtSortUtils.getIntSort(mScript); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java new file mode 100644 index 00000000000..b749a817fba --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcBodyVar; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcHeadVar; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcVar; +import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.logic.TermVariable; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; + +public class HornClauseBuilder { + private final ManagedScript mManagedScript; + private final HcSymbolTable mSymbolTable; + private final PredicateInfo mHeadPredicate; + + private final Map mSubstitution = new HashMap<>(); + private final List mBodyPreds = new ArrayList<>(); + private final List> mBodyArgs = new ArrayList<>(); + private final List mConstraints = new ArrayList<>(); + private final Set mBodyVars = new HashSet<>(); + + public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symbolTable, + final PredicateInfo headPredicate) { + mManagedScript = mgdScript; + mSymbolTable = symbolTable; + mHeadPredicate = headPredicate; + } + + public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symbolTable) { + this(mgdScript, symbolTable, null); + } + + public HcBodyVar getFreshBodyVar(final Object identifier, final Sort sort) { + // TODO Using the number of bodyVars as index is a hack! + // TODO suitable parameters for getOrConstructBodyVar + final HcBodyVar auxVar = mSymbolTable.getOrConstructBodyVar(null, mBodyVars.size(), sort, identifier); + mBodyVars.add(auxVar); + return auxVar; + } + + public HcBodyVar getBodyVar(final IHcReplacementVar variable) { + // TODO suitable parameters for getOrConstructBodyVar + final var result = mSymbolTable.getOrConstructBodyVar(null, -1, variable.getSort(), variable); + mBodyVars.add(result); + return result; + } + + public HcHeadVar getHeadVar(final IHcReplacementVar variable) { + // TODO + assert mHeadPredicate.hasParameter(variable); + return null; + } + + public void sameBodyHeadVar(final IHcReplacementVar variable) { + mSubstitution.put(getBodyVar(variable).getTermVariable(), getHeadVar(variable).getTerm()); + } + + public List getDefaultBodyArgs(final PredicateInfo predicate) { + return IntStream.range(0, predicate.getParamCount()) + .mapToObj(i -> getBodyVar(predicate.getParameter(i)).getTerm()) + .collect(Collectors.toCollection(ArrayList::new)); + } + + public void addBodyPredicate(final PredicateInfo predicate, final List arguments) { + mBodyPreds.add(predicate.getPredicate()); + mBodyArgs.add(arguments); + } + + public void addConstraint(final Term term) { + mConstraints.add(term); + } + + public HornClause build() { + final var constraint = getSubstitutedConstraint(); + + final var substitutedBodyArgs = new ArrayList>(mBodyArgs.size()); + for (final var args : mBodyArgs) { + substitutedBodyArgs.add(args.stream().map(this::substitute).collect(Collectors.toList())); + } + + return new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); + } + + private Term substitute(final Term term) { + if (mSubstitution.isEmpty()) { + return term; + } + return Substitution.apply(mManagedScript, mSubstitution, term); + } + + private Term getSubstitutedConstraint() { + if (mConstraints.isEmpty()) { + return null; + } + return substitute(SmtUtils.and(mManagedScript.getScript(), mConstraints)); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java new file mode 100644 index 00000000000..ff5d091ebaf --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Objects; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; +import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; + +public class PredicateInfo { + private final HcPredicateSymbol mPredicate; + private final BidirectionalMap mVariable2Index; + + public PredicateInfo(final HcPredicateSymbol predicate, + final BidirectionalMap variable2Index) { + mPredicate = predicate; + mVariable2Index = variable2Index; + } + + public HcPredicateSymbol getPredicate() { + return mPredicate; + } + + public boolean hasParameter(final IHcReplacementVar variable) { + return mVariable2Index.containsKey(variable); + } + + public int getIndex(final IHcReplacementVar variable) { + assert mVariable2Index.containsKey(variable); + return mVariable2Index.get(variable); + } + + public IHcReplacementVar getParameter(final int index) { + final var result = mVariable2Index.inverse().get(index); + assert result != null; + return result; + } + + public int getParamCount() { + return mVariable2Index.size(); + } + + @Override + public int hashCode() { + return Objects.hash(mPredicate, mVariable2Index); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final PredicateInfo other = (PredicateInfo) obj; + return Objects.equals(mPredicate, other.mPredicate) && Objects.equals(mVariable2Index, other.mVariable2Index); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java new file mode 100644 index 00000000000..9e9853e6beb --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -0,0 +1,230 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornClauseProvider { + private final IIndependenceRelation> mIndependence; + private final Map> mThreadLocations; + + private final Map mIdVars = new HashMap<>(); + private final Map mSleepVars = new HashMap<>(); + + public SleepSetThreadModularHornClauseProvider(final Map numberOfThreads, + final ManagedScript mgdScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, + final Predicate variableFilter, final Collection initialLocations, + final Collection errorLocations, + final IIndependenceRelation> independence, + final Map> threadLocations) { + super(numberOfThreads, mgdScript, cfgSmtToolkit, symbolTable, variableFilter, initialLocations, errorLocations); + mIndependence = independence; + mThreadLocations = threadLocations; + } + + @Override + protected List createThreadSpecificVars(final ThreadInstance instance) { + final var result = super.createThreadSpecificVars(instance); + + // thread ID + final var id = new HcThreadIdVar(instance, mScript); + mIdVars.put(instance, id); + result.add(0, id); + + // sleep set + final var sleep = new HcSleepVar(instance, mScript); + mSleepVars.put(instance, sleep); + result.add(1, sleep); + + return result; + } + + @Override + protected HornClauseBuilder buildInitialClause() { + final var clause = super.buildInitialClause(); + + // all sleep variables are initialized to 0 + for (final var instance : mInstances) { + final var sleep = mSleepVars.get(instance); + clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getHeadVar(sleep).getTerm(), numeral(0))); + } + + return clause; + } + + @Override + protected HornClauseBuilder buildInductivityClause(final IIcfgTransition transition, + final Map preds, final Map succs, + final ThreadInstance updatedThread) { + final var clause = super.buildInductivityClause(transition, preds, succs, updatedThread); + + // active threads are not sleeping + for (final var active : preds.keySet()) { + final var sleep = mSleepVars.get(active); + clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(sleep).getTerm(), numeral(0))); + } + + // thread IDs are ordered + ensureThreadOrdering(clause); + + // update sleep variables + for (final var instance : mInstances) { + updateSleepInductive(clause, transition, preds.keySet(), updatedThread, instance); + } + + return clause; + } + + @Override + protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + final var clause = super.buildNonInterferenceClause(transition); + + final var interferingThread = getInterferingThread(transition); + final var interferingId = new HcThreadIdVar(interferingThread, mScript); + + // thread IDs are ordered + ensureThreadOrdering(clause); + + // ensure interfering thread has distinct thread ID + for (final var instance : mInstances) { + clause.addConstraint(SmtUtils.distinct(mScript, clause.getBodyVar(mIdVars.get(instance)).getTerm(), + clause.getBodyVar(interferingId).getTerm())); + } + + // interfering thread is not sleeping + final var sleep = new HcSleepVar(interferingThread, mScript); + clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(sleep).getTerm(), numeral(0))); + + // update sleep variables + for (final var instance : mInstances) { + updateSleepNonInterference(clause, transition, interferingId, instance); + } + + return clause; + } + + private void ensureThreadOrdering(final HornClauseBuilder clause) { + for (int i = 0; i < mInstances.size(); ++i) { + final var instance = mInstances.get(i); + final var id = mIdVars.get(instance); + + // thread ID must not change + clause.sameBodyHeadVar(id); + + // fix ordering between thread IDs + if (i + 1 < mInstances.size()) { + final var next = mInstances.get(i + 1); + final var nextId = mIdVars.get(next); + clause.addConstraint( + SmtUtils.less(mScript, clause.getBodyVar(id).getTerm(), clause.getBodyVar(nextId).getTerm())); + } + } + } + + // update sleep variable depending on commutativity and thread ID ordering + // Here the ordering can be resolved statically + private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTransition transition, + final Set activeThreads, final ThreadInstance primaryActiveThread, + final ThreadInstance current) { + final var loc = clause.getBodyVar(mLocationVars.get(current)); + final Term nonCommConstr = getNonCommutativityConstraint(current, loc.getTerm(), transition); + + // for now, the preference order is non-positional, and given by the ordering in mInstances + final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); + + if (activeThreads.contains(current)) { + // no update of sleep variable + } else if (ordering < 0) { + // set sleep variable to false / leave unchanged + final var sleep = mSleepVars.get(current); + final var oldSleep = clause.getBodyVar(sleep); + final var newSleep = clause.getHeadVar(sleep); + clause.addConstraint(SmtUtils.ite(mScript, nonCommConstr, + SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), + SmtUtils.binaryEquality(mScript, newSleep.getTerm(), oldSleep.getTerm()))); + } else { + // set sleep variable to false / true + final var sleep = mSleepVars.get(current); + final var newSleep = clause.getHeadVar(sleep); + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, + SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), nonCommConstr)); + } + } + + // update sleep variable depending on commutativity and thread ID ordering + // Here the ordering can only be resolved at runtime, so we treat it statically + private void updateSleepNonInterference(final HornClauseBuilder clause, final IIcfgTransition transition, + final HcThreadIdVar interferingId, final ThreadInstance current) { + final var oldSleep = clause.getBodyVar(mSleepVars.get(current)); + final var newSleep = clause.getHeadVar(mSleepVars.get(current)); + + final var currentLoc = clause.getBodyVar(mLocationVars.get(current)); + final var currentId = clause.getBodyVar(mIdVars.get(current)); + + final Term nonCommConstr = getNonCommutativityConstraint(current, currentLoc.getTerm(), transition); + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, + SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), + SmtUtils.or(mScript, + SmtUtils.and(mScript, + SmtUtils.greater(mScript, currentId.getTerm(), + clause.getBodyVar(interferingId).getTerm()), + SmtUtils.binaryEquality(mScript, oldSleep.getTerm(), numeral(0))), + nonCommConstr))); + } + + protected Term getNonCommutativityConstraint(final ThreadInstance instance, final Term locVar, + final IIcfgTransition currentEdge) { + + final var nonCommLocations = new HashSet(); + for (final var loc : mThreadLocations.get(instance.getTemplateName())) { + if (loc.getOutgoingEdges().stream() + .anyMatch(edge -> mIndependence.isIndependent(null, edge, currentEdge) != Dependence.INDEPENDENT)) { + nonCommLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); + } + } + return SmtUtils.and(mScript, nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) + .collect(Collectors.toList())); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java new file mode 100644 index 00000000000..1b2ae36ffaf --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -0,0 +1,437 @@ +/* + * Copyright (C) 2022 Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2022-2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.logic.TermVariable; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; +import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.HashRelation; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; + +/** + * Generates Horn clauses for a thread-modular proof. + * + * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + */ +public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvider { + private static final String FUNCTION_NAME = "Inv"; + private static final int INTERFERING_INSTANCE_ID = -1; + + private final IIcfgSymbolTable mCfgSymbolTable; + private final Predicate mVariableFilter; + + private final Map mInitialLocations; + private final HashRelation mErrorLocations = new HashRelation<>(); + + // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this + // integer as value iff control is in the given location + private final NestedMap2 mLocationIndices = new NestedMap2<>(); + + // used as location for threads that are not currently running + private final Term mBottomLocation; + + protected final List mInstances; + + protected final PredicateInfo mInvariantPredicate; + + protected final Set mGlobalVars = new HashSet<>(); + protected final Map> mThreadSpecificVars = new HashMap<>(); + protected final Map mLocationVars = new HashMap<>(); + protected final NestedMap2 mLocalVars = new NestedMap2<>(); + + public ThreadModularHornClauseProvider(final Map numberOfThreads, final ManagedScript mgdScript, + final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, + final Predicate variableFilter, final Collection initialLocations, + final Collection errorLocations) { + super(mgdScript, symbolTable); + mCfgSymbolTable = cfgSmtToolkit.getSymbolTable(); + mVariableFilter = variableFilter; + mBottomLocation = numeral(-1); + mInstances = getInstances(numberOfThreads); + mInvariantPredicate = createInvariantPredicate(); + + // TODO also support the non-parametric setting, i.e., only set initial location for ID 0 + mInitialLocations = createInstanceLocationMap(initialLocations); + + for (final IcfgLocation loc : errorLocations) { + for (final var instance : getInstances(loc.getProcedure())) { + mErrorLocations.addPair(instance, loc); + } + } + } + + // Initialization code and variable creation + // ----------------------------------------------------------------------------------------------------------------- + + private static List getInstances(final Map numberOfThreads) { + final var result = new ArrayList(); + for (final var entry : numberOfThreads.entrySet()) { + for (int i = 0; i < entry.getValue(); i++) { + result.add(new ThreadInstance(entry.getKey(), i)); + } + } + return result; + } + + private List getInstances(final String template) { + return mInstances.stream().filter(inst -> inst.getTemplateName().equals(template)).collect(Collectors.toList()); + } + + private Map createInstanceLocationMap(final Collection locations) { + final var result = new HashMap(); + for (final IcfgLocation loc : locations) { + for (final var instance : getInstances(loc.getProcedure())) { + result.put(instance, loc); + } + } + return result; + } + + private PredicateInfo createInvariantPredicate() { + final var parameters = getInvariantParameters(); + + final List sorts = parameters.stream().map(IHcReplacementVar::getSort).collect(Collectors.toList()); + final var predicate = mSymbolTable.getOrConstructHornClausePredicateSymbol(FUNCTION_NAME, sorts); + + final var paramMap = IntStream.range(0, parameters.size()).mapToObj(i -> new Pair<>(parameters.get(i), i)) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue, (i, j) -> i, BidirectionalMap::new)); + + return new PredicateInfo(predicate, paramMap); + } + + /** + * Constructs the sequence of parameters for the invariant predicate. + * + * Subclasses can override this method, or more specific methods below ({@link #createGlobalVars()} or + * {@link #createThreadSpecificVars(ThreadInstance)}), to add additional parameters. + * + * @return A (modifiable) list of parameters. The list must not contain duplicates. + */ + protected List getInvariantParameters() { + final var result = new ArrayList(); + result.addAll(createGlobalVars()); + for (final var instance : mInstances) { + final var threadSpecific = createThreadSpecificVars(instance); + mThreadSpecificVars.put(instance, threadSpecific); + result.addAll(threadSpecific); + } + return result; + } + + /** + * Constructs those parameters of the invariant predicate that correspond to global variables (used by + * {@link #getInvariantParameters()}). + * + * @return A (modifiable) list of parameters. The list must not contain duplicates. + */ + protected List createGlobalVars() { + final var result = new ArrayList(); + for (final var pv : mCfgSymbolTable.getGlobals()) { + if (mVariableFilter.test(pv)) { + final var global = new HcGlobalVar(pv); + mGlobalVars.add(global); + result.add(global); + } + } + return result; + } + + /** + * Constructs parameters of the invariant predicate that are specific to the given thread instance (used by + * {@link #getInvariantParameters()}). By default, this includes local variables of the thread template, and a + * location variable (for the program counter). + * + * @return A (modifiable) list of parameters. The list must not contain duplicates. + */ + protected List createThreadSpecificVars(final ThreadInstance instance) { + final var result = new ArrayList(); + + final var location = new HcLocationVar(instance, getIntSort()); + mLocationVars.put(instance, location); + result.add(location); + + final List localVars = mCfgSymbolTable.getLocals(instance.getTemplateName()).stream() + .filter(mVariableFilter).collect(Collectors.toList()); + for (final IProgramVar pv : localVars) { + final var local = new HcLocalVar(pv, instance.getInstanceNumber()); + mLocalVars.put(instance, pv, local); + result.add(local); + } + + return result; + } + + // Horn clause generation + // ----------------------------------------------------------------------------------------------------------------- + + @Override + protected List buildAllClauses() { + final var result = new ArrayList(); + + result.add(buildInitialClause()); + for (final var entry : mErrorLocations.getSetOfPairs()) { + result.add(buildSafetyClause(entry.getKey(), entry.getValue())); + } + // TODO inductive clauses + // TODO noninterference clauses + + return result; + } + + /** + * Builds the initial clause that encodes the precondition. By default, this method only fixes the initial location + * of the threads. + */ + protected HornClauseBuilder buildInitialClause() { + final var clause = createBuilder(mInvariantPredicate); + + // add location constraints + for (final var instance : mInstances) { + // If instance does not have an initial location, a constraint for mBottomLocation is added. + addOutLocationConstraint(clause, instance, mInitialLocations.get(instance)); + } + + return clause; + } + + /** + * Builds a safety clause specifying unreachability of a given error location. + * + * @param thread + * The thread instance which must not reach the error location + * @param errorLoc + * The error location that shall be proven unreachable + */ + protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final IcfgLocation errorLoc) { + // create a clause with head "false" + final var clause = createBuilder(); + + // add body clause + clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); + + // location constraint + addOutLocationConstraint(clause, thread, errorLoc); + + return clause; + } + + /** + * Builds an inductivity clause that encodes the effect of a transition on the thread that executes it. + * + * @param transition + * The transition whose effect is encoded + * @param preds + * A map specifying predecessor locations of the transition. Each thread instance involved in the + * transition must have an entry; other thread instances must not. + * + * Specifying multiple predecessors can be useful for joins. However, joins are not yet fully supported + * by this class. + * @param succs + * A map specifying successor locations of the transition. Each thread instance involved in the + * transition must have an entry; other thread instances must not. + * + * Specifying multiple predecessors can be useful for forks. + * @param updatedThread + * The primary active thread, whose local variables are updated by the transition. + */ + protected HornClauseBuilder buildInductivityClause(final IIcfgTransition transition, + final Map preds, final Map succs, + final ThreadInstance updatedThread) { + final var clause = createBuilder(mInvariantPredicate); + + // add body clause + clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); + + // add location constraints + for (final var entry : preds.entrySet()) { + addInLocationConstraint(clause, entry.getKey(), entry.getValue()); + } + for (final var entry : succs.entrySet()) { + addOutLocationConstraint(clause, entry.getKey(), entry.getValue()); + } + + // add transition constraint + final var locals = mLocalVars.values().collect(Collectors.toList()); + addTransitionConstraint(clause, transition, updatedThread, locals); + + return clause; + } + + /** + * Builds a noninterference clause for the given transition. + */ + protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + final var clause = createBuilder(mInvariantPredicate); + + // TODO support transitions with multiple predecessors (joins) + final var interferingThread = getInterferingThread(transition); + + // add interference-free clause to body + clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); + + // add precondition clauses + for (final var instance : getInstances(interferingThread.getTemplateName())) { + final var bodyArgs = clause.getDefaultBodyArgs(mInvariantPredicate); + + // replace thread-specific variables with those for the interfering thread + final var instanceVars = mThreadSpecificVars.get(instance); + final var interferingVars = createThreadSpecificVars(interferingThread); + for (int i = 0; i < instanceVars.size(); ++i) { + final var original = instanceVars.get(i); + final var replaced = interferingVars.get(i); + if (mInvariantPredicate.hasParameter(original)) { + final int index = mInvariantPredicate.getIndex(original); + bodyArgs.set(index, clause.getBodyVar(replaced).getTerm()); + } + } + + clause.addBodyPredicate(mInvariantPredicate, bodyArgs); + } + + // add location constraint + addInLocationConstraint(clause, interferingThread, transition.getSource()); + + // add transition constraint + final var locals = Stream.concat(mLocalVars.values(), getInterferingLocals(interferingThread)) + .collect(Collectors.toList()); + addTransitionConstraint(clause, transition, interferingThread, locals); + + return clause; + } + + // Auxiliary methods + // ----------------------------------------------------------------------------------------------------------------- + + protected void addInLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, + final IcfgLocation location) { + final var locTerm = + location == null ? mBottomLocation : getLocIndexTerm(location, threadInstance.getTemplateName()); + final HcLocationVar locVar = mLocationVars.get(threadInstance); + final Term term = clause.getBodyVar(locVar).getTerm(); + clause.addConstraint(SmtUtils.binaryEquality(mScript, term, locTerm)); + } + + protected void addOutLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, + final IcfgLocation location) { + final var locTerm = + location == null ? mBottomLocation : getLocIndexTerm(location, threadInstance.getTemplateName()); + final HcLocationVar locVar = mLocationVars.get(threadInstance); + final Term term = clause.getHeadVar(locVar).getTerm(); + clause.addConstraint(SmtUtils.binaryEquality(mScript, term, locTerm)); + } + + protected Term getLocIndexTerm(final IcfgLocation loc, final String proc) { + Integer index = mLocationIndices.get(proc, loc); + if (index == null) { + final Map otherIndices = mLocationIndices.get(proc); + index = otherIndices == null ? 0 : otherIndices.size(); + mLocationIndices.put(proc, loc, index); + } + return numeral(index); + } + + protected void addTransitionConstraint(final HornClauseBuilder clause, final IIcfgTransition transition, + final ThreadInstance updatedThread, final Collection localVariables) { + final var tf = transition.getTransformula(); + final var assigned = tf.getAssignedVars(); + final var substitution = new HashMap(); + + // deal with global variables + for (final var global : mGlobalVars) { + if (assigned.contains(global.getVariable())) { + prepareSubstitution(clause, transition, substitution, global, global.getVariable()); + } else { + clause.sameBodyHeadVar(global); + } + } + + // deal with local variables + for (final HcLocalVar local : localVariables) { + if (local.getThreadInstance().equals(updatedThread) && assigned.contains(local.getVariable())) { + prepareSubstitution(clause, transition, substitution, local, local.getVariable()); + } else { + clause.sameBodyHeadVar(local); + } + } + + // replace all other variables with auxiliary variables + final Term formula = tf.getFormula(); + for (final TermVariable v : formula.getFreeVars()) { + substitution.computeIfAbsent(v, variable -> clause.getFreshBodyVar(variable, variable.getSort()).getTerm()); + } + + // add transition constraint + clause.addConstraint(Substitution.apply(mManagedScript, substitution, formula)); + } + + private static void prepareSubstitution(final HornClauseBuilder clause, final IIcfgTransition transition, + final Map substitution, final IHcReplacementVar rv, final IProgramVar pv) { + final TermVariable inVar = transition.getTransformula().getInVars().get(pv); + final TermVariable outVar = transition.getTransformula().getOutVars().get(pv); + substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + + assert !Objects.equals(inVar, outVar); + substitution.put(inVar, clause.getBodyVar(rv).getTerm()); + } + + protected ThreadInstance getInterferingThread(final IIcfgTransition transition) { + return new ThreadInstance(transition.getPrecedingProcedure(), INTERFERING_INSTANCE_ID); + } + + private Stream getInterferingLocals(final ThreadInstance interferingThread) { + return mCfgSymbolTable.getLocals(interferingThread.getTemplateName()).stream().filter(mVariableFilter) + .map(pv -> new HcLocalVar(pv, INTERFERING_INSTANCE_ID)); + } +} From db0f9e5deebe3fbbc84fe255a8dc3ca2d74e3b3f Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 15:27:39 +0200 Subject: [PATCH 006/124] fix Horn clauses with non-false head --- .../plugins/icfgtochc/concurrent/HornClauseBuilder.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index b749a817fba..504190805fd 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -119,7 +119,14 @@ public HornClause build() { substitutedBodyArgs.add(args.stream().map(this::substitute).collect(Collectors.toList())); } - return new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); + if (mHeadPredicate == null) { + return new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); + } + + final var headArgs = IntStream.range(0, mHeadPredicate.getParamCount()) + .mapToObj(i -> getHeadVar(mHeadPredicate.getParameter(i))).collect(Collectors.toList()); + return new HornClause(mManagedScript, mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, + mBodyPreds, substitutedBodyArgs, mBodyVars); } private Term substitute(final Term term) { From 053b75539bc5a7b689b444da793756f89d3d64b2 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 15:28:41 +0200 Subject: [PATCH 007/124] add support for variables not tied to a specific predicate and index --- .../concurrent/HornClauseBuilder.java | 10 ++--- .../ultimate/lib/chc/HcBodyVar.java | 7 +--- .../ultimate/lib/chc/HcHeadVar.java | 5 +-- .../ultimate/lib/chc/HcPredVar.java | 40 ++++--------------- .../ultimate/lib/chc/HcSymbolTable.java | 35 +++++++++++++++- .../ultimate/lib/chc/HornUtilConstants.java | 6 ++- 6 files changed, 52 insertions(+), 51 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 504190805fd..07af91a4d53 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -72,24 +72,20 @@ public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symb } public HcBodyVar getFreshBodyVar(final Object identifier, final Sort sort) { - // TODO Using the number of bodyVars as index is a hack! - // TODO suitable parameters for getOrConstructBodyVar - final HcBodyVar auxVar = mSymbolTable.getOrConstructBodyVar(null, mBodyVars.size(), sort, identifier); + final HcBodyVar auxVar = mSymbolTable.getOrConstructBodyVar(identifier, sort); mBodyVars.add(auxVar); return auxVar; } public HcBodyVar getBodyVar(final IHcReplacementVar variable) { - // TODO suitable parameters for getOrConstructBodyVar - final var result = mSymbolTable.getOrConstructBodyVar(null, -1, variable.getSort(), variable); + final var result = mSymbolTable.getOrConstructBodyVar(variable, variable.getSort()); mBodyVars.add(result); return result; } public HcHeadVar getHeadVar(final IHcReplacementVar variable) { - // TODO assert mHeadPredicate.hasParameter(variable); - return null; + return mSymbolTable.getOrConstructHeadVar(variable, variable.getSort()); } public void sameBodyHeadVar(final IHcReplacementVar variable) { diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcBodyVar.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcBodyVar.java index f5b4e29b409..62ab0a95f6f 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcBodyVar.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcBodyVar.java @@ -31,7 +31,6 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.logic.Sort; - /** * * @@ -42,7 +41,6 @@ public class HcBodyVar extends HcPredVar implements ILocalProgramVar { private static final long serialVersionUID = 4653727851496150630L; - /** * Identified by the first three parameters (headPredSymProcName, index, sort) * @@ -53,12 +51,11 @@ public class HcBodyVar extends HcPredVar implements ILocalProgramVar { * @param defaultConstant * @param primedConstant */ - public HcBodyVar(final String globallyUniqueId, final HcPredicateSymbol headPredSym, final int index, final Sort sort, + public HcBodyVar(final String globallyUniqueId, final String procName, final int index, final Sort sort, final ManagedScript script, final Object lockOwner) { - super(globallyUniqueId, false, headPredSym, index, sort, script, lockOwner); + super(globallyUniqueId, false, procName, index, sort, script, lockOwner); } - @Override public String getIdentifier() { return getGloballyUniqueId(); diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcHeadVar.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcHeadVar.java index 944751d676c..94165acad71 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcHeadVar.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcHeadVar.java @@ -30,7 +30,6 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.logic.Sort; - /** * * @@ -51,8 +50,8 @@ public class HcHeadVar extends HcPredVar { * @param defaultConstant * @param primedConstant */ - HcHeadVar(final String globallyUniqueId, final HcPredicateSymbol headPredSym, final int index, final Sort sort, + HcHeadVar(final String globallyUniqueId, final String predName, final int index, final Sort sort, final ManagedScript mgdScript, final Object lockOwner) { - super(globallyUniqueId, true, headPredSym, index, sort, mgdScript, lockOwner); + super(globallyUniqueId, true, predName, index, sort, mgdScript, lockOwner); } } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java index c87e730e4a5..450c99a65f0 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java @@ -6,52 +6,26 @@ public abstract class HcPredVar extends HcVar { - - /** - * The sort of the TermVariable and constants - * --> this is a field just because it is part of this HCOutVar's identity. - */ - private final Sort mSort; - - private final HcPredicateSymbol mPredSymbol; - private final int mIndex; /** * * @param globallyUniqueId - * @param headNotBody TODO this determines isGlobal -- why??? + * @param headNotBody + * TODO this determines isGlobal -- why??? * @param predSym * @param index * @param sort * @param mgdScript * @param lockOwner */ - HcPredVar(final String globallyUniqueId, final boolean headNotBody, final HcPredicateSymbol predSym, final int index, final Sort sort, - final ManagedScript mgdScript, final Object lockOwner) { - super(globallyUniqueId, - mgdScript.variable(globallyUniqueId, sort), + HcPredVar(final String globallyUniqueId, final boolean headNotBody, final String procName, final int index, + final Sort sort, final ManagedScript mgdScript, final Object lockOwner) { + super(globallyUniqueId, mgdScript.variable(globallyUniqueId, sort), ProgramVarUtils.constructDefaultConstant(mgdScript, lockOwner, sort, globallyUniqueId), - ProgramVarUtils.constructPrimedConstant(mgdScript, lockOwner, sort, globallyUniqueId), - headNotBody, - HornUtilConstants.sanitzePredName(predSym.getName()) - ); - - mPredSymbol = predSym; -// mProcName = HornUtilConstants.sanitzePredName(predSym.getName()); + ProgramVarUtils.constructPrimedConstant(mgdScript, lockOwner, sort, globallyUniqueId), headNotBody, + HornUtilConstants.sanitzePredName(procName)); mIndex = index; - mSort = sort; - -// mIsGlobal = headNotBody; - -// mGloballyUniqueId = globallyUniqueId; -// HornUtilConstants.computeNameForHcVar(headNotBody ? -// HornUtilConstants.HEADVARPREFIX : -// HornUtilConstants.BODYVARPREFIX, -// predSym, index, sort.toString()); -// mTermVariable = mgdScript.variable(mGloballyUniqueId, sort); -// mDefaultConstant = ProgramVarUtils.constructDefaultConstant(mgdScript, lockOwner, sort, mGloballyUniqueId); -// mPrimedConstant = ProgramVarUtils.constructPrimedConstant(mgdScript, lockOwner, sort, mGloballyUniqueId); } public int getIndex() { diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index 24c68b77a6e..9c90f9505ef 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -45,6 +45,9 @@ */ public class HcSymbolTable extends DefaultIcfgSymbolTable implements ITerm2ExpressionSymbolTable { + private static final String DUMMY_PRED_NAME = "DUMMY"; + private static final int DUMMY_PRED_INDEX = 0; + private final ManagedScript mManagedScript; private final NestedMap2, HcPredicateSymbol> mNameToSortsToHornClausePredicateSymbol; @@ -55,6 +58,8 @@ public class HcSymbolTable extends DefaultIcfgSymbolTable implements ITerm2Expre final Map mVersionsMap; + private final Map mBodyVars = new HashMap<>(); + private final Map mHeadVars = new HashMap<>(); private final NestedMap3 mPredSymNameToIndexToSortToHcHeadVar; private final NestedMap3 mPredSymNameToIndexToSortToHcBodyVar; private final Map mTermVariableToHcBodyAuxVar; @@ -272,7 +277,7 @@ public HcHeadVar getOrConstructHeadVar(final HcPredicateSymbol predSym, final in predSym, index, identfier.toString()); mManagedScript.lock(this); - result = new HcHeadVar(globallyUniqueId, predSym, index, transferredSort, mManagedScript, this); + result = new HcHeadVar(globallyUniqueId, predSym.getName(), index, transferredSort, mManagedScript, this); mManagedScript.unlock(this); mPredSymNameToIndexToSortToHcHeadVar.put(predSym, index, transferredSort, result); mTermVarToProgramVar.put(result.getTermVariable(), result); @@ -285,6 +290,19 @@ public HcHeadVar getOrConstructHeadVar(final HcPredicateSymbol predSym, final in return getOrConstructHeadVar(predSym, index, pv.getSort(), pv); } + public HcHeadVar getOrConstructHeadVar(final Object identifier, final Sort sort) { + return mHeadVars.computeIfAbsent(identifier, id -> { + final Sort transferredSort = transferSort(sort); + final String globallyUniqueId = + HornUtilConstants.computeNameForHcVar(HornUtilConstants.BODYVARPREFIX, id.toString()); + mManagedScript.lock(this); + final var result = new HcHeadVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, + mManagedScript, this); + mManagedScript.unlock(this); + return result; + }); + } + public HcBodyVar getOrConstructBodyVar(final HcPredicateSymbol predSym, final int index, final Sort sort, final Object identfier) { final Sort transferredSort = transferSort(sort); @@ -296,7 +314,7 @@ public HcBodyVar getOrConstructBodyVar(final HcPredicateSymbol predSym, final in predSym, index, identfier.toString()); mManagedScript.lock(this); - result = new HcBodyVar(globallyUniqueId, predSym, index, transferredSort, mManagedScript, this); + result = new HcBodyVar(globallyUniqueId, predSym.getName(), index, transferredSort, mManagedScript, this); mManagedScript.unlock(this); mPredSymNameToIndexToSortToHcBodyVar.put(predSym, index, transferredSort, result); mTermVarToProgramVar.put(result.getTermVariable(), result); @@ -309,6 +327,19 @@ public HcBodyVar getOrConstructBodyVar(final HcPredicateSymbol predSym, final in return getOrConstructBodyVar(predSym, index, pv.getSort(), pv); } + public HcBodyVar getOrConstructBodyVar(final Object identifier, final Sort sort) { + return mBodyVars.computeIfAbsent(identifier, id -> { + final Sort transferredSort = transferSort(sort); + final String globallyUniqueId = + HornUtilConstants.computeNameForHcVar(HornUtilConstants.BODYVARPREFIX, id.toString()); + mManagedScript.lock(this); + final var result = new HcBodyVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, + mManagedScript, this); + mManagedScript.unlock(this); + return result; + }); + } + public HcBodyAuxVar getOrConstructBodyAuxVar(final TermVariable tv, final Object lockOwner) { HcBodyAuxVar result = mTermVariableToHcBodyAuxVar.get(tv); if (result == null) { diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java index 1cb017b205e..a05281d3395 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java @@ -60,12 +60,16 @@ private HornUtilConstants() { public static String computeNameForHcVar(final String prefix, final HcPredicateSymbol predSym, final int index, final String identifier) { - final String name = HornUtilConstants.sanitzePredName(predSym.getName()); final String identifierString = identifier.replaceAll(" ", "_").replaceAll("[()]", ""); return String.format("%s_%s_%s_%d", prefix, name, identifierString, index); } + public static String computeNameForHcVar(final String prefix, final String identifier) { + final String identifierString = identifier.replaceAll(" ", "_").replaceAll("[()]", ""); + return String.format("%s_%s", prefix, identifierString); + } + /** * The allowed characters for smt identifiers are not all allowed for Boogie idenifiers. * From 10f4bfcdf8f517060988c528c9b25824523c52e1 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 15:28:56 +0200 Subject: [PATCH 008/124] fix location constraint --- .../icfgtochc/concurrent/ThreadModularHornClauseProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 1b2ae36ffaf..064f89b61aa 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -262,7 +262,7 @@ protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); // location constraint - addOutLocationConstraint(clause, thread, errorLoc); + addInLocationConstraint(clause, thread, errorLoc); return clause; } From 83e5dcabe1baf77380e465890751091bc4730117 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 16:44:27 +0200 Subject: [PATCH 009/124] refactor ChcProviderConcurrentWithLbe: create new ICFG, use existing ChcProvider --- .../ChcProviderConcurrentWithLbe.java | 100 +--------- .../concurrent/IcfgLiptonReducer.java | 186 ++++++++++++++++++ 2 files changed, 190 insertions(+), 96 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgLiptonReducer.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index 693fd88ff1a..2c0b5eb996a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -1,34 +1,13 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; -import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import de.uni_freiburg.informatik.ultimate.automata.AutomataLibraryException; -import de.uni_freiburg.informatik.ultimate.automata.petrinet.netdatastructures.BoundedPetriNet; -import de.uni_freiburg.informatik.ultimate.automata.petrinet.netdatastructures.Transition; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgPetrifier; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.ISLPredicate; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateFactory; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.initialabstraction.PetriInitialAbstractionProvider; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.initialabstraction.PetriLbeInitialAbstractionProvider; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.petrinetlbe.IcfgCompositionFactory; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; /** @@ -38,12 +17,12 @@ * */ public class ChcProviderConcurrentWithLbe implements IChcProvider { + private static final int MAXIMUM_NUMBER_OF_THREADS = 2; + private final ManagedScript mMgdScript; private final HcSymbolTable mHcSymbolTable; private final IUltimateServiceProvider mServices; - private static final int MAXIMUM_NUMBER_OF_THREADS = 2; - public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, final IUltimateServiceProvider services) { mMgdScript = mgdScript; @@ -53,78 +32,7 @@ public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbo @Override public Collection getHornClauses(final IIcfg icfg) { - final IIcfg petrified = new IcfgPetrifier(mServices, icfg, 2, false).getPetrifiedIcfg(); - final Map numberOfThreads = - petrified.getInitialNodes().stream().collect(Collectors.toMap(IcfgLocation::getProcedure, x -> 1)); - final Set unboundedThreads = new HashSet<>(); - final var forksInLoops = IcfgUtils.getForksInLoop(petrified); - final var instanceMap = petrified.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); - for (final var entry : instanceMap.entrySet()) { - final String instance = entry.getValue().get(0).getThreadInstanceName(); - // TODO: Only add if fork is reachable - if (forksInLoops.contains(entry.getKey())) { - numberOfThreads.put(instance, MAXIMUM_NUMBER_OF_THREADS); - unboundedThreads.add(instance); - } else { - numberOfThreads.put(instance, 1); - } - } - final BoundedPetriNet petriNet = getPetriNetWithLbe(petrified, mServices); - final List result = new ArrayList<>(); - final List errorLocs = getLocations(petriNet.getAcceptingPlaces()).stream() - .filter(x -> numberOfThreads.containsKey(x.getProcedure())).collect(Collectors.toList()); - final var locations = icfg.getProgramPoints().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); - final IcfgToChcConcurrent factory = new IcfgToChcConcurrent(numberOfThreads, mMgdScript, - petrified.getCfgSmtToolkit(), mHcSymbolTable, x -> true, locations, null); - result.add(factory.getInitialClause(getLocations(petriNet.getInitialPlaces()))); - result.addAll(factory.getSafetyClauses(errorLocs)); - for (final Transition transition : petriNet.getTransitions()) { - final IcfgEdge edge = transition.getSymbol(); - final String proc = edge.getPrecedingProcedure(); - if (!numberOfThreads.containsKey(proc) || !numberOfThreads.containsKey(edge.getSucceedingProcedure())) { - continue; - } - final List pre = getLocations(transition.getPredecessors()); - final List post = getLocations(transition.getSuccessors()); - result.addAll(factory.getInductivityClauses(pre, edge, post)); - if (unboundedThreads.contains(proc)) { - result.add(factory.getNonInterferenceClause(edge)); - } - // TODO: Special case for a fork to do "nothing"? - // TODO: What about joins? - } - return result; - } - - private static List getLocations(final Collection places) { - final List result = new ArrayList<>(); - for (final IPredicate p : places) { - if (p instanceof ISLPredicate) { - result.add(((ISLPredicate) p).getProgramPoint()); - } - } - return result; - } - - private static BoundedPetriNet getPetriNetWithLbe(final IIcfg icfg, - final IUltimateServiceProvider services) { - final CfgSmtToolkit csToolkit = icfg.getCfgSmtToolkit(); - final PredicateFactory predicateFactory = - new PredicateFactory(services, csToolkit.getManagedScript(), csToolkit.getSymbolTable()); - final PetriInitialAbstractionProvider petriNetProvider = - new PetriInitialAbstractionProvider<>(services, predicateFactory, true); - final PetriLbeInitialAbstractionProvider lbeProvider = new PetriLbeInitialAbstractionProvider<>( - petriNetProvider, services, IcfgEdge.class, new IndependenceSettings(), - new IcfgCompositionFactory(services, csToolkit), Activator.PLUGIN_ID); - final Set inUseLocs = - new HashSet<>(icfg.getCfgSmtToolkit().getConcurrencyInformation().getInUseErrorNodeMap().values()); - final Set errors = icfg.getProcedureErrorNodes().values().stream().flatMap(Collection::stream) - .filter(x -> !inUseLocs.contains(x)).collect(Collectors.toSet()); - try { - return lbeProvider.getInitialAbstraction(icfg, errors); - } catch (final AutomataLibraryException e) { - throw new AssertionError(e); - } + final var reduced = new IcfgLiptonReducer(mServices, icfg, MAXIMUM_NUMBER_OF_THREADS).getResult(); + return new ChcProviderConcurrent(mServices, mMgdScript, mHcSymbolTable).getHornClauses(reduced); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgLiptonReducer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgLiptonReducer.java new file mode 100644 index 00000000000..a45147fee7d --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgLiptonReducer.java @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2022 Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2022-2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.automata.AutomataLibraryException; +import de.uni_freiburg.informatik.ultimate.automata.petrinet.netdatastructures.BoundedPetriNet; +import de.uni_freiburg.informatik.ultimate.automata.petrinet.netdatastructures.Transition; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.BasicIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgPetrifier; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgForkTransitionThreadOther; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgJoinTransitionThreadOther; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.ISLPredicate; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateFactory; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.initialabstraction.PetriInitialAbstractionProvider; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.initialabstraction.PetriLbeInitialAbstractionProvider; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.petrinetlbe.IcfgCompositionFactory; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; + +/** + * Performs Lipton reduction on a concurrent program, and returns a new ICFG for the reduced program. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * + */ +public class IcfgLiptonReducer { + private final IIcfg mPetrifiedIcfg; + private final BasicIcfg mNewIcfg; + + private final List mInitialLocs; + private final List mErrorLocs; + + public IcfgLiptonReducer(final IUltimateServiceProvider services, final IIcfg icfg, + final int numberOfInstances) { + mPetrifiedIcfg = new IcfgPetrifier(services, icfg, numberOfInstances, false).getPetrifiedIcfg(); + final BoundedPetriNet petriNet = getPetriNetWithLbe(mPetrifiedIcfg, services); + mInitialLocs = getLocations(petriNet.getInitialPlaces()); + mErrorLocs = getLocations(petriNet.getAcceptingPlaces()); + + mNewIcfg = new BasicIcfg<>(mPetrifiedIcfg.getIdentifier() + "_afterLipton", mPetrifiedIcfg.getCfgSmtToolkit(), + mPetrifiedIcfg.getLocationClass()); + addLocations(mInitialLocs); + addLocations(mErrorLocs); + + for (final Transition transition : petriNet.getTransitions()) { + final IcfgEdge edge = transition.getSymbol(); + + final List post = getLocations(transition.getSuccessors()); + final List pre = getLocations(transition.getPredecessors()); + addLocations(pre); + addLocations(post); + + if (edge instanceof IIcfgForkTransitionThreadOther) { + final var forkOther = (IIcfgForkTransitionThreadOther) edge; + final var forkCurrent = forkOther.getCorrespondingIIcfgForkTransitionCurrentThread(); + + assert Objects.equals(forkOther.getSource(), forkCurrent.getSource()); + assert Objects.equals(pre, List.of(forkOther.getSource())); + assert Objects.equals(post, List.of(forkOther.getTarget(), forkCurrent.getTarget())); + + forkOther.getSource().addOutgoing(edge); + forkOther.getSource().addOutgoing((IcfgEdge) forkCurrent); + forkOther.getTarget().addIncoming(edge); + forkCurrent.getTarget().addIncoming((IcfgEdge) forkCurrent); + } else if (edge instanceof IIcfgJoinTransitionThreadOther) { + final var joinOther = (IIcfgJoinTransitionThreadOther) edge; + final var joinCurrent = joinOther.getCorrespondingIIcfgJoinTransitionCurrentThread(); + + assert Objects.equals(joinOther.getTarget(), joinCurrent.getTarget()); + assert Objects.equals(pre, List.of(joinOther.getSource(), joinCurrent.getSource())); + assert Objects.equals(post, List.of(joinOther.getTarget())); + + joinOther.getSource().addOutgoing(edge); + joinCurrent.getSource().addOutgoing((IcfgEdge) joinCurrent); + joinOther.getTarget().addIncoming(edge); + joinOther.getTarget().addIncoming((IcfgEdge) joinCurrent); + } else { + assert Objects.equals(pre, List.of(edge.getSource())); + assert Objects.equals(post, List.of(edge.getTarget())); + + edge.getSource().addOutgoing(edge); + edge.getTarget().addIncoming(edge); + } + } + } + + private void addLocations(final Collection locs) { + for (final var loc : locs) { + addLocation(loc); + } + } + + private void addLocation(final IcfgLocation loc) { + final var procLocs = mNewIcfg.getProgramPoints().get(loc.getProcedure()); + if (procLocs == null) { + mNewIcfg.addProcedure(loc.getProcedure()); + } else if (procLocs.containsKey(loc.getDebugIdentifier())) { + // already added + return; + } + + // clean slate: remove all edges of location + loc.removeAllIncoming(loc.getIncomingEdges()); + loc.removeAllOutgoing(loc.getOutgoingEdges()); + + final var isProcEntry = Objects.equals(mPetrifiedIcfg.getProcedureEntryNodes().get(loc.getProcedure()), loc); + final var isProcExit = Objects.equals(mPetrifiedIcfg.getProcedureExitNodes().get(loc.getProcedure()), loc); + mNewIcfg.addLocation(loc, mInitialLocs.contains(loc), mErrorLocs.contains(loc), isProcEntry, isProcExit, + mPetrifiedIcfg.getLoopLocations().contains(loc)); + } + + private static List getLocations(final Collection places) { + final List result = new ArrayList<>(); + for (final IPredicate p : places) { + if (p instanceof ISLPredicate) { + result.add(((ISLPredicate) p).getProgramPoint()); + } + } + return result; + } + + private static BoundedPetriNet getPetriNetWithLbe(final IIcfg icfg, + final IUltimateServiceProvider services) { + final CfgSmtToolkit csToolkit = icfg.getCfgSmtToolkit(); + final PredicateFactory predicateFactory = + new PredicateFactory(services, csToolkit.getManagedScript(), csToolkit.getSymbolTable()); + final PetriInitialAbstractionProvider petriNetProvider = + new PetriInitialAbstractionProvider<>(services, predicateFactory, true); + final PetriLbeInitialAbstractionProvider lbeProvider = new PetriLbeInitialAbstractionProvider<>( + petriNetProvider, services, IcfgEdge.class, new IndependenceSettings(), + new IcfgCompositionFactory(services, csToolkit), Activator.PLUGIN_ID); + final Set inUseLocs = + new HashSet<>(icfg.getCfgSmtToolkit().getConcurrencyInformation().getInUseErrorNodeMap().values()); + final Set errors = icfg.getProcedureErrorNodes().values().stream().flatMap(Collection::stream) + .filter(x -> !inUseLocs.contains(x)).collect(Collectors.toSet()); + try { + return lbeProvider.getInitialAbstraction(icfg, errors); + } catch (final AutomataLibraryException e) { + throw new AssertionError(e); + } + } + + public IIcfg getResult() { + return mNewIcfg; + } +} From 5b7e3f0f3635f52c9ebb6a3c4abbde0a889544a9 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 5 Apr 2023 16:50:55 +0200 Subject: [PATCH 010/124] add mode and level parameters to ChcProviderConcurrent --- .../plugins/icfgtochc/IcfgToChcObserver.java | 9 ++++++--- .../icfgtochc/concurrent/ChcProviderConcurrent.java | 12 +++++++++++- .../concurrent/ChcProviderConcurrentWithLbe.java | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index b61a6c94134..b5ab537c2ff 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -49,6 +49,7 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.Mode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithLbe; /** @@ -154,13 +155,15 @@ private static boolean isReturnReachable(final IIcfg icfg) { private IChcProvider getChcProvider(final IIcfg icfg, final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { - if (true || IcfgUtils.isConcurrent(icfg)) { + final boolean isParametric = true; + if (isParametric || IcfgUtils.isConcurrent(icfg)) { assert !isReturnReachable(icfg); if (USE_LBE_FOR_CONCURRENT_PROGRAMS) { + assert !isParametric; return new ChcProviderConcurrentWithLbe(mgdScript, hcSymbolTable, mServices); - } else { - return new ChcProviderConcurrent(mServices, mgdScript, hcSymbolTable); } + return new ChcProviderConcurrent(mServices, mgdScript, hcSymbolTable, + isParametric ? Mode.PARAMETRIC : Mode.SINGLE_MAIN, 2); } return new ChcProviderForCalls(mgdScript, hcSymbolTable); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java index cecf8103dbc..89d877b12a2 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java @@ -28,17 +28,27 @@ * */ public class ChcProviderConcurrent implements IChcProvider { + public enum Mode { + SINGLE_MAIN, PARAMETRIC + } + private final IUltimateServiceProvider mServices; private final ManagedScript mMgdScript; private final HcSymbolTable mHcSymbolTable; + private final Mode mMode; + private final int mLevel; private static final int MAXIMUM_NUMBER_OF_THREADS = 2; public ChcProviderConcurrent(final IUltimateServiceProvider services, final ManagedScript mgdScript, - final HcSymbolTable hcSymbolTable) { + final HcSymbolTable hcSymbolTable, final Mode mode, final int level) { mServices = services; mMgdScript = mgdScript; mHcSymbolTable = hcSymbolTable; + mMode = mode; + mLevel = level; + + assert level >= 1; } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index 2c0b5eb996a..6d9582bfb98 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -9,6 +9,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.Mode; /** * ChcProvider for concurrent programs based on the petri-net using LBE. @@ -33,6 +34,7 @@ public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbo @Override public Collection getHornClauses(final IIcfg icfg) { final var reduced = new IcfgLiptonReducer(mServices, icfg, MAXIMUM_NUMBER_OF_THREADS).getResult(); - return new ChcProviderConcurrent(mServices, mMgdScript, mHcSymbolTable).getHornClauses(reduced); + return new ChcProviderConcurrent(mServices, mMgdScript, mHcSymbolTable, Mode.SINGLE_MAIN, + MAXIMUM_NUMBER_OF_THREADS).getHornClauses(reduced); } } From a50b4e5cf5263708cef75a44b3e2901301c400ef Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 11 Apr 2023 14:46:58 +0200 Subject: [PATCH 011/124] add BidirectionalMap::merge (allows to be used in stream collectors) --- .../util/datastructures/BidirectionalMap.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/trunk/source/Library-UltimateUtil/src/de/uni_freiburg/informatik/ultimate/util/datastructures/BidirectionalMap.java b/trunk/source/Library-UltimateUtil/src/de/uni_freiburg/informatik/ultimate/util/datastructures/BidirectionalMap.java index c7d42b82783..b529c678024 100644 --- a/trunk/source/Library-UltimateUtil/src/de/uni_freiburg/informatik/ultimate/util/datastructures/BidirectionalMap.java +++ b/trunk/source/Library-UltimateUtil/src/de/uni_freiburg/informatik/ultimate/util/datastructures/BidirectionalMap.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.BiFunction; /** * A bidirectional map is a 1:1 mapping, having unique keys and unique values. @@ -183,5 +184,23 @@ public void putAll(Map m) { } } + @Override + public V merge(final K key, final V value, final BiFunction remappingFunction) { + final var old = get(key); + final var result = mergeAsymmetric(key, value, remappingFunction); + if (old != null) { + mInverse.removeAsymmetric(old); + } + if (result != null) { + mInverse.putAsymmetric(result, key); + } + return result; + } + + private V mergeAsymmetric(final K key, final V value, + final BiFunction remappingFunction) { + return super.merge(key, value, remappingFunction); + } + // equals() and hashCode() from super class work for this implementation } From e450ef4b18397232d118ffbc75724331c154f73c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 11 Apr 2023 14:47:55 +0200 Subject: [PATCH 012/124] HcSymbolTable fix copy-paste error --- .../uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index 9c90f9505ef..015fb827bfe 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -294,7 +294,7 @@ public HcHeadVar getOrConstructHeadVar(final Object identifier, final Sort sort) return mHeadVars.computeIfAbsent(identifier, id -> { final Sort transferredSort = transferSort(sort); final String globallyUniqueId = - HornUtilConstants.computeNameForHcVar(HornUtilConstants.BODYVARPREFIX, id.toString()); + HornUtilConstants.computeNameForHcVar(HornUtilConstants.HEADVARPREFIX, id.toString()); mManagedScript.lock(this); final var result = new HcHeadVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, mManagedScript, this); From 366c8588d8925eb8b05c7ea457d6b2a163c95729 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 11 Apr 2023 14:58:57 +0200 Subject: [PATCH 013/124] continue refactoring - ThreadModularHornClauseProvider: give params to individual methods, not constructor - ThreadModularHornClauseProvider: fix several bugs with generated clauses, e.g. transition constraints - HornClauseBuilder: default to not modifying variable unless explicitly stated (rather than the reverse) - HornClauseBuilder: support comments on clauses - ChcProviderConcurrent: use new Horn clause generation --- .../plugins/icfgtochc/IcfgToChcObserver.java | 25 ++- .../concurrent/ChcProviderConcurrent.java | 170 +++++++++++++----- .../ChcProviderConcurrentWithLbe.java | 4 +- .../ChcProviderConcurrentWithSleep.java | 57 ++++++ .../ExtensibleHornClauseProvider.java | 8 +- .../concurrent/HornClauseBuilder.java | 46 +++-- .../icfgtochc/concurrent/PredicateInfo.java | 2 +- ...eepSetThreadModularHornClauseProvider.java | 54 +++--- .../icfgtochc/concurrent/ThreadInstance.java | 5 + .../ThreadModularHornClauseProvider.java | 105 +++++------ 10 files changed, 321 insertions(+), 155 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index b5ab537c2ff..a0dbfc86c60 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -51,6 +51,7 @@ import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.Mode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithLbe; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithSleep; /** * @@ -64,8 +65,11 @@ public class IcfgToChcObserver extends BaseObserver { private IElement mResult; - // TODO: Make this a setting + // TODO: Make these into settings + private static final boolean TREAT_AS_PARAMETRIC_PROGRAM = true; private static final boolean USE_LBE_FOR_CONCURRENT_PROGRAMS = false; + private static final boolean USE_SLEEP_SETS = true; + private static final int THREAD_MODULAR_PROOF_LEVEL = 2; public IcfgToChcObserver(final ILogger logger, final IUltimateServiceProvider services) { mLogger = logger; @@ -155,15 +159,24 @@ private static boolean isReturnReachable(final IIcfg icfg) { private IChcProvider getChcProvider(final IIcfg icfg, final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { - final boolean isParametric = true; - if (isParametric || IcfgUtils.isConcurrent(icfg)) { + if (TREAT_AS_PARAMETRIC_PROGRAM || IcfgUtils.isConcurrent(icfg)) { assert !isReturnReachable(icfg); if (USE_LBE_FOR_CONCURRENT_PROGRAMS) { - assert !isParametric; + // TODO support LBE for parametric programs + assert !TREAT_AS_PARAMETRIC_PROGRAM; + + // TODO support combination of LBE and sleep sets + assert !USE_SLEEP_SETS; + return new ChcProviderConcurrentWithLbe(mgdScript, hcSymbolTable, mServices); } - return new ChcProviderConcurrent(mServices, mgdScript, hcSymbolTable, - isParametric ? Mode.PARAMETRIC : Mode.SINGLE_MAIN, 2); + + final var mode = TREAT_AS_PARAMETRIC_PROGRAM ? Mode.PARAMETRIC : Mode.SINGLE_MAIN_THREAD; + if (USE_SLEEP_SETS) { + return new ChcProviderConcurrentWithSleep(mServices, mgdScript, hcSymbolTable, mode, + THREAD_MODULAR_PROOF_LEVEL); + } + return new ChcProviderConcurrent(mgdScript, hcSymbolTable, mode, THREAD_MODULAR_PROOF_LEVEL); } return new ChcProviderForCalls(mgdScript, hcSymbolTable); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java index 89d877b12a2..973e7d66dd2 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java @@ -5,44 +5,41 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; +import java.util.Objects; import java.util.stream.Collectors; -import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgForkTransitionThreadCurrent; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgJoinTransitionThreadCurrent; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Triple; /** * ChcProvider for concurrent programs based on the icfg. * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) */ public class ChcProviderConcurrent implements IChcProvider { public enum Mode { - SINGLE_MAIN, PARAMETRIC + SINGLE_MAIN_THREAD, PARAMETRIC } - private final IUltimateServiceProvider mServices; - private final ManagedScript mMgdScript; - private final HcSymbolTable mHcSymbolTable; - private final Mode mMode; - private final int mLevel; - - private static final int MAXIMUM_NUMBER_OF_THREADS = 2; + protected final ManagedScript mMgdScript; + protected final HcSymbolTable mHcSymbolTable; + protected final Mode mMode; + protected final int mLevel; - public ChcProviderConcurrent(final IUltimateServiceProvider services, final ManagedScript mgdScript, - final HcSymbolTable hcSymbolTable, final Mode mode, final int level) { - mServices = services; + public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, final Mode mode, + final int level) { mMgdScript = mgdScript; mHcSymbolTable = hcSymbolTable; mMode = mode; @@ -53,6 +50,83 @@ public ChcProviderConcurrent(final IUltimateServiceProvider services, final Mana @Override public Collection getHornClauses(final IIcfg icfg) { + final var threadBounds = getThreadNumbersAndUnboundedThreads(icfg); + final var numberOfThreads = threadBounds.getFirst(); + final var unboundedThreads = threadBounds.getSecond(); + + final var factory = createFactory(numberOfThreads, icfg); + final List result = new ArrayList<>(); + + final var initialClause = factory.buildInitialClause(getInitialLocations(icfg, factory.getInstances())).build(); + result.add(initialClause); + + final Map entryNodes = icfg.getProcedureEntryNodes(); + for (final String proc : numberOfThreads.keySet()) { + final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); + while (edges.hasNext()) { + final IcfgEdge edge = edges.next(); + for (final var prePost : getCartesianPrePostProduct(factory, icfg, edge)) { + final var clause = factory + .buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()) + .build(); + result.add(clause); + } + + if (unboundedThreads.contains(proc)) { + result.add(factory.buildNonInterferenceClause(edge).build()); + } + } + } + + final var errorLocs = getErrorLocations(icfg, factory.getInstances()); + for (final var pair : errorLocs) { + final var safetyClause = factory.buildSafetyClause(pair.getFirst(), pair.getSecond()).build(); + result.add(safetyClause); + } + + return result; + } + + private static List, Map, ThreadInstance>> + getCartesianPrePostProduct(final ThreadModularHornClauseProvider factory, final IIcfg icfg, + final IcfgEdge edge) { + if (edge instanceof IIcfgForkTransitionThreadCurrent) { + final var forkCurrent = (IIcfgForkTransitionThreadCurrent) edge; + final var forkEntry = icfg.getProcedureEntryNodes().get(forkCurrent.getNameOfForkedProcedure()); + final var result = + new ArrayList, Map, ThreadInstance>>(); + for (final var instance : factory.getInstances(edge.getPrecedingProcedure())) { + final var preds = Map.of(instance, edge.getSource()); + for (final var forked : factory.getInstances(forkCurrent.getNameOfForkedProcedure())) { + if (Objects.equals(instance, forked)) { + continue; + } + final var succs = Map.of(instance, edge.getTarget(), forked, forkEntry); + result.add(new Triple<>(preds, succs, instance)); + } + } + return result; + } + if (edge instanceof IIcfgJoinTransitionThreadCurrent) { + assert false : "Joins not supported"; + } + + return factory.getInstances(edge.getPrecedingProcedure()).stream() + .map(t -> new Triple<>(Map.of(t, edge.getSource()), Map.of(t, edge.getTarget()), t)) + .collect(Collectors.toList()); + } + + protected Pair, List> + getThreadNumbersAndUnboundedThreads(final IIcfg icfg) { + if (mMode == Mode.PARAMETRIC) { + final var numberOfThreads = + icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> mLevel)); + final var unbounded = List.copyOf(numberOfThreads.keySet()); + return new Pair<>(numberOfThreads, unbounded); + } + + assert mMode == Mode.SINGLE_MAIN_THREAD : "Unknown mode: " + mMode; + final var forksInLoops = IcfgUtils.getForksInLoop(icfg); final var instanceMap = icfg.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); final Map numberOfThreads = new HashMap<>(); @@ -63,11 +137,11 @@ public Collection getHornClauses(final IIcfg icfg) { final String procedure = fork.getNameOfForkedProcedure(); // TODO: Only add if fork is reachable if (forksInLoops.contains(fork)) { - numberOfThreads.put(procedure, MAXIMUM_NUMBER_OF_THREADS); + numberOfThreads.put(procedure, mLevel); unboundedThreads.add(procedure); } else { final Integer oldCount = numberOfThreads.getOrDefault(procedure, 0); - if (oldCount == MAXIMUM_NUMBER_OF_THREADS) { + if (oldCount == mLevel) { unboundedThreads.add(procedure); } else { numberOfThreads.put(procedure, oldCount + 1); @@ -75,39 +149,37 @@ public Collection getHornClauses(final IIcfg icfg) { } } - numberOfThreads.clear(); - numberOfThreads.put("thread", 2); - unboundedThreads.clear(); - unboundedThreads.add("thread"); + return new Pair<>(numberOfThreads, unboundedThreads); + } - final var independence = new SemanticIndependenceRelation<>(mServices, mMgdScript, false, true); - final var locations = icfg.getProgramPoints().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); - final IcfgToChcConcurrent factory = new IcfgToChcConcurrent(numberOfThreads, mMgdScript, - icfg.getCfgSmtToolkit(), mHcSymbolTable, x -> true, locations, independence); - final List result = new ArrayList<>(); - result.add(factory.getInitialClause(icfg.getInitialNodes())); - // result.add(factory.getIdUniquenessClause()); - final Set errorNodes = - icfg.getProcedureErrorNodes().values().stream().flatMap(Set::stream).collect(Collectors.toSet()); - final Map entryNodes = icfg.getProcedureEntryNodes(); - result.addAll(factory.getSafetyClauses(errorNodes)); - for (final String proc : numberOfThreads.keySet()) { - final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); - while (edges.hasNext()) { - // TODO: Add the handling of joins (needs thread id?) - final IcfgEdge edge = edges.next(); - if (edge instanceof IIcfgForkTransitionThreadCurrent) { - final String forked = ((IIcfgForkTransitionThreadCurrent) edge).getNameOfForkedProcedure(); - result.addAll(factory.getInductivityClauses(List.of(edge.getSource()), edge, - List.of(edge.getTarget(), entryNodes.get(forked)))); - } - result.addAll(factory.getInductivityClauses(edge)); - if (unboundedThreads.contains(proc)) { - result.add(factory.getNonInterferenceClause(edge)); - } - } + protected Map getInitialLocations(final IIcfg icfg, + final List instances) { + switch (mMode) { + case PARAMETRIC: + // combine each initial location (usually there is only one) with ALL instances of its template + return icfg + .getInitialNodes().stream().flatMap(l -> instances.stream() + .filter(i -> i.getTemplateName().equals(l.getProcedure())).map(i -> new Pair<>(i, l))) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); + case SINGLE_MAIN_THREAD: + // combine each initial location (usually there is only one) with instance 0 of its template + return icfg.getInitialNodes().stream() + .collect(Collectors.toMap(l -> new ThreadInstance(l.getProcedure(), 0), l -> l)); } - return result; + throw new UnsupportedOperationException("Unknown mode: " + mMode); + } + + protected List> getErrorLocations(final IIcfg icfg, + final List instances) { + return icfg.getProcedureErrorNodes().entrySet().stream() + .flatMap(e -> e.getValue().stream().map(l -> new Pair<>(e.getKey(), l))).flatMap(e -> instances.stream() + .filter(i -> i.getTemplateName().equals(e.getKey())).map(i -> new Pair<>(i, e.getValue()))) + .collect(Collectors.toList()); + } + + protected ThreadModularHornClauseProvider createFactory(final Map numberOfThreads, + final IIcfg icfg) { + return new ThreadModularHornClauseProvider(numberOfThreads, mMgdScript, icfg.getCfgSmtToolkit(), mHcSymbolTable, + x -> true); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index 6d9582bfb98..3f1b28fe995 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -34,7 +34,7 @@ public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbo @Override public Collection getHornClauses(final IIcfg icfg) { final var reduced = new IcfgLiptonReducer(mServices, icfg, MAXIMUM_NUMBER_OF_THREADS).getResult(); - return new ChcProviderConcurrent(mServices, mMgdScript, mHcSymbolTable, Mode.SINGLE_MAIN, - MAXIMUM_NUMBER_OF_THREADS).getHornClauses(reduced); + return new ChcProviderConcurrent(mMgdScript, mHcSymbolTable, Mode.SINGLE_MAIN_THREAD, MAXIMUM_NUMBER_OF_THREADS) + .getHornClauses(reduced); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java new file mode 100644 index 00000000000..ed86d289cca --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Map; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; + +public class ChcProviderConcurrentWithSleep extends ChcProviderConcurrent { + private final IUltimateServiceProvider mServices; + + public ChcProviderConcurrentWithSleep(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final HcSymbolTable hcSymbolTable, final Mode mode, final int level) { + super(mgdScript, hcSymbolTable, mode, level); + mServices = services; + } + + @Override + protected ThreadModularHornClauseProvider createFactory(final Map numberOfThreads, + final IIcfg icfg) { + final var independence = new SemanticIndependenceRelation<>(mServices, mMgdScript, false, true); + final var locations = icfg.getProgramPoints().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); + return new SleepSetThreadModularHornClauseProvider(numberOfThreads, mMgdScript, icfg.getCfgSmtToolkit(), + mHcSymbolTable, x -> true, independence, locations); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java index 2f39c1d3b0e..ee81b4423c6 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java @@ -50,12 +50,12 @@ public ExtensibleHornClauseProvider(final ManagedScript mgdScript, final HcSymbo mSymbolTable = symbolTable; } - protected final HornClauseBuilder createBuilder(final PredicateInfo predicate) { - return new HornClauseBuilder(mManagedScript, mSymbolTable, Objects.requireNonNull(predicate)); + protected final HornClauseBuilder createBuilder(final PredicateInfo predicate, final String comment) { + return new HornClauseBuilder(mManagedScript, mSymbolTable, Objects.requireNonNull(predicate), comment); } - protected final HornClauseBuilder createBuilder() { - return new HornClauseBuilder(mManagedScript, mSymbolTable); + protected final HornClauseBuilder createBuilder(final String comment) { + return new HornClauseBuilder(mManagedScript, mSymbolTable, comment); } protected abstract List buildAllClauses(); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 07af91a4d53..0fe8da638f0 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -53,22 +53,25 @@ public class HornClauseBuilder { private final ManagedScript mManagedScript; private final HcSymbolTable mSymbolTable; private final PredicateInfo mHeadPredicate; + private final String mComment; private final Map mSubstitution = new HashMap<>(); + private final Set mModifiedVars = new HashSet<>(); private final List mBodyPreds = new ArrayList<>(); private final List> mBodyArgs = new ArrayList<>(); private final List mConstraints = new ArrayList<>(); private final Set mBodyVars = new HashSet<>(); public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symbolTable, - final PredicateInfo headPredicate) { + final PredicateInfo headPredicate, final String comment) { mManagedScript = mgdScript; mSymbolTable = symbolTable; mHeadPredicate = headPredicate; + mComment = comment; } - public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symbolTable) { - this(mgdScript, symbolTable, null); + public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symbolTable, final String comment) { + this(mgdScript, symbolTable, null, comment); } public HcBodyVar getFreshBodyVar(final Object identifier, final Sort sort) { @@ -84,12 +87,14 @@ public HcBodyVar getBodyVar(final IHcReplacementVar variable) { } public HcHeadVar getHeadVar(final IHcReplacementVar variable) { + assert mHeadPredicate != null : "Clause does not have head predicate"; assert mHeadPredicate.hasParameter(variable); return mSymbolTable.getOrConstructHeadVar(variable, variable.getSort()); } - public void sameBodyHeadVar(final IHcReplacementVar variable) { - mSubstitution.put(getBodyVar(variable).getTermVariable(), getHeadVar(variable).getTerm()); + public void differentBodyHeadVar(final IHcReplacementVar variable) { + assert mHeadPredicate != null : "Clause does not have head predicate"; + mModifiedVars.add(variable); } public List getDefaultBodyArgs(final PredicateInfo predicate) { @@ -108,6 +113,7 @@ public void addConstraint(final Term term) { } public HornClause build() { + prepareSubstitution(); final var constraint = getSubstitutedConstraint(); final var substitutedBodyArgs = new ArrayList>(mBodyArgs.size()); @@ -115,14 +121,34 @@ public HornClause build() { substitutedBodyArgs.add(args.stream().map(this::substitute).collect(Collectors.toList())); } + HornClause clause; if (mHeadPredicate == null) { - return new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); + clause = new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, + mBodyVars); + } else { + final var headArgs = IntStream.range(0, mHeadPredicate.getParamCount()) + .mapToObj(i -> getHeadVar(mHeadPredicate.getParameter(i))).collect(Collectors.toList()); + clause = new HornClause(mManagedScript, mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, + mBodyPreds, substitutedBodyArgs, mBodyVars); + } + if (mComment != null) { + clause.setComment(mComment); + } + return clause; + } + + private void prepareSubstitution() { + if (mHeadPredicate == null) { + return; } - final var headArgs = IntStream.range(0, mHeadPredicate.getParamCount()) - .mapToObj(i -> getHeadVar(mHeadPredicate.getParameter(i))).collect(Collectors.toList()); - return new HornClause(mManagedScript, mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, - mBodyPreds, substitutedBodyArgs, mBodyVars); + mSubstitution.clear(); + for (int i = 0; i < mHeadPredicate.getParamCount(); ++i) { + final var variable = mHeadPredicate.getParameter(i); + if (!mModifiedVars.contains(variable)) { + mSubstitution.put(getBodyVar(variable).getTermVariable(), getHeadVar(variable).getTerm()); + } + } } private Term substitute(final Term term) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java index ff5d091ebaf..f399c748159 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java @@ -57,7 +57,7 @@ public int getIndex(final IHcReplacementVar variable) { public IHcReplacementVar getParameter(final int index) { final var result = mVariable2Index.inverse().get(index); - assert result != null; + assert result != null : "No parameter at index " + index + " (out of " + mPredicate.getArity() + ")"; return result; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 9e9853e6beb..956b2ca8527 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -27,10 +27,10 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; import java.util.Collection; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -45,45 +45,49 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornClauseProvider { private final IIndependenceRelation> mIndependence; private final Map> mThreadLocations; - private final Map mIdVars = new HashMap<>(); - private final Map mSleepVars = new HashMap<>(); + private final Map mIdVars; + private final Map mSleepVars; public SleepSetThreadModularHornClauseProvider(final Map numberOfThreads, final ManagedScript mgdScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, - final Predicate variableFilter, final Collection initialLocations, - final Collection errorLocations, + final Predicate variableFilter, final IIndependenceRelation> independence, final Map> threadLocations) { - super(numberOfThreads, mgdScript, cfgSmtToolkit, symbolTable, variableFilter, initialLocations, errorLocations); + super(numberOfThreads, mgdScript, cfgSmtToolkit, symbolTable, variableFilter); mIndependence = independence; mThreadLocations = threadLocations; + + mIdVars = extractThreadVars(HcThreadIdVar.class); + mSleepVars = extractThreadVars(HcSleepVar.class); + } + + private Map extractThreadVars(final Class varClass) { + return mThreadSpecificVars.entrySet().stream() + .map(entry -> new Pair<>(entry.getKey(), + entry.getValue().stream().filter(varClass::isInstance).map(varClass::cast).findFirst().get())) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); } @Override protected List createThreadSpecificVars(final ThreadInstance instance) { final var result = super.createThreadSpecificVars(instance); - // thread ID - final var id = new HcThreadIdVar(instance, mScript); - mIdVars.put(instance, id); - result.add(0, id); - - // sleep set - final var sleep = new HcSleepVar(instance, mScript); - mSleepVars.put(instance, sleep); - result.add(1, sleep); + // add thread ID and sleep set + result.add(0, new HcThreadIdVar(instance, mScript)); + result.add(1, new HcSleepVar(instance, mScript)); return result; } @Override - protected HornClauseBuilder buildInitialClause() { - final var clause = super.buildInitialClause(); + protected HornClauseBuilder buildInitialClause(final Map initialLocations) { + final var clause = super.buildInitialClause(initialLocations); // all sleep variables are initialized to 0 for (final var instance : mInstances) { @@ -150,9 +154,6 @@ private void ensureThreadOrdering(final HornClauseBuilder clause) { final var instance = mInstances.get(i); final var id = mIdVars.get(instance); - // thread ID must not change - clause.sameBodyHeadVar(id); - // fix ordering between thread IDs if (i + 1 < mInstances.size()) { final var next = mInstances.get(i + 1); @@ -174,11 +175,12 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra // for now, the preference order is non-positional, and given by the ordering in mInstances final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); + final var sleep = mSleepVars.get(current); if (activeThreads.contains(current)) { // no update of sleep variable } else if (ordering < 0) { // set sleep variable to false / leave unchanged - final var sleep = mSleepVars.get(current); + clause.differentBodyHeadVar(sleep); final var oldSleep = clause.getBodyVar(sleep); final var newSleep = clause.getHeadVar(sleep); clause.addConstraint(SmtUtils.ite(mScript, nonCommConstr, @@ -186,7 +188,7 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra SmtUtils.binaryEquality(mScript, newSleep.getTerm(), oldSleep.getTerm()))); } else { // set sleep variable to false / true - final var sleep = mSleepVars.get(current); + clause.differentBodyHeadVar(sleep); final var newSleep = clause.getHeadVar(sleep); clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), nonCommConstr)); @@ -197,8 +199,10 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra // Here the ordering can only be resolved at runtime, so we treat it statically private void updateSleepNonInterference(final HornClauseBuilder clause, final IIcfgTransition transition, final HcThreadIdVar interferingId, final ThreadInstance current) { - final var oldSleep = clause.getBodyVar(mSleepVars.get(current)); - final var newSleep = clause.getHeadVar(mSleepVars.get(current)); + final var sleep = mSleepVars.get(current); + clause.differentBodyHeadVar(sleep); + final var oldSleep = clause.getBodyVar(sleep); + final var newSleep = clause.getHeadVar(sleep); final var currentLoc = clause.getBodyVar(mLocationVars.get(current)); final var currentId = clause.getBodyVar(mIdVars.get(current)); @@ -224,7 +228,7 @@ protected Term getNonCommutativityConstraint(final ThreadInstance instance, fina nonCommLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); } } - return SmtUtils.and(mScript, nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) + return SmtUtils.or(mScript, nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) .collect(Collectors.toList())); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java index 346ba360d35..57f69b21bc3 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java @@ -45,6 +45,11 @@ public int getInstanceNumber() { return mInstanceNumber; } + @Override + public String toString() { + return mTemplateName + "_" + mInstanceNumber; + } + @Override public int hashCode() { return Objects.hash(mInstanceNumber, mTemplateName); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 064f89b61aa..80a1cea69b8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -54,7 +54,6 @@ import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.HashRelation; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; @@ -72,9 +71,6 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide private final IIcfgSymbolTable mCfgSymbolTable; private final Predicate mVariableFilter; - private final Map mInitialLocations; - private final HashRelation mErrorLocations = new HashRelation<>(); - // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this // integer as value iff control is in the given location private final NestedMap2 mLocationIndices = new NestedMap2<>(); @@ -93,23 +89,13 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide public ThreadModularHornClauseProvider(final Map numberOfThreads, final ManagedScript mgdScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, - final Predicate variableFilter, final Collection initialLocations, - final Collection errorLocations) { + final Predicate variableFilter) { super(mgdScript, symbolTable); mCfgSymbolTable = cfgSmtToolkit.getSymbolTable(); mVariableFilter = variableFilter; mBottomLocation = numeral(-1); mInstances = getInstances(numberOfThreads); mInvariantPredicate = createInvariantPredicate(); - - // TODO also support the non-parametric setting, i.e., only set initial location for ID 0 - mInitialLocations = createInstanceLocationMap(initialLocations); - - for (final IcfgLocation loc : errorLocations) { - for (final var instance : getInstances(loc.getProcedure())) { - mErrorLocations.addPair(instance, loc); - } - } } // Initialization code and variable creation @@ -125,18 +111,12 @@ private static List getInstances(final Map numb return result; } - private List getInstances(final String template) { - return mInstances.stream().filter(inst -> inst.getTemplateName().equals(template)).collect(Collectors.toList()); + public List getInstances() { + return mInstances; } - private Map createInstanceLocationMap(final Collection locations) { - final var result = new HashMap(); - for (final IcfgLocation loc : locations) { - for (final var instance : getInstances(loc.getProcedure())) { - result.put(instance, loc); - } - } - return result; + public List getInstances(final String template) { + return mInstances.stream().filter(inst -> inst.getTemplateName().equals(template)).collect(Collectors.toList()); } private PredicateInfo createInvariantPredicate() { @@ -220,10 +200,10 @@ protected List createThreadSpecificVars(final ThreadInstan protected List buildAllClauses() { final var result = new ArrayList(); - result.add(buildInitialClause()); - for (final var entry : mErrorLocations.getSetOfPairs()) { - result.add(buildSafetyClause(entry.getKey(), entry.getValue())); - } + // result.add(buildInitialClause()); + // for (final var entry : mErrorLocations.getSetOfPairs()) { + // result.add(buildSafetyClause(entry.getKey(), entry.getValue())); + // } // TODO inductive clauses // TODO noninterference clauses @@ -234,13 +214,13 @@ protected List buildAllClauses() { * Builds the initial clause that encodes the precondition. By default, this method only fixes the initial location * of the threads. */ - protected HornClauseBuilder buildInitialClause() { - final var clause = createBuilder(mInvariantPredicate); + protected HornClauseBuilder buildInitialClause(final Map initialLocations) { + final var clause = createBuilder(mInvariantPredicate, "initial clause"); // add location constraints for (final var instance : mInstances) { // If instance does not have an initial location, a constraint for mBottomLocation is added. - addOutLocationConstraint(clause, instance, mInitialLocations.get(instance)); + addOutLocationConstraint(clause, instance, initialLocations.get(instance)); } return clause; @@ -256,12 +236,12 @@ protected HornClauseBuilder buildInitialClause() { */ protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final IcfgLocation errorLoc) { // create a clause with head "false" - final var clause = createBuilder(); + final var clause = createBuilder("safety clause for location " + errorLoc + " in thread instance " + thread); // add body clause clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); - // location constraint + // location constraints addInLocationConstraint(clause, thread, errorLoc); return clause; @@ -289,17 +269,22 @@ protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final protected HornClauseBuilder buildInductivityClause(final IIcfgTransition transition, final Map preds, final Map succs, final ThreadInstance updatedThread) { - final var clause = createBuilder(mInvariantPredicate); + final var clause = createBuilder(mInvariantPredicate, + "inductivity clause for transition " + transition.hashCode() + " with transformula " + + transition.getTransformula() + " and thread instance " + updatedThread); // add body clause clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); // add location constraints - for (final var entry : preds.entrySet()) { - addInLocationConstraint(clause, entry.getKey(), entry.getValue()); - } - for (final var entry : succs.entrySet()) { - addOutLocationConstraint(clause, entry.getKey(), entry.getValue()); + for (final var instance : mInstances) { + final var isActive = preds.containsKey(instance) || succs.containsKey(instance); + if (isActive) { + // if instance only in preds or only in succs, the respective other location is mBottomLocation + clause.differentBodyHeadVar(mLocationVars.get(instance)); + addInLocationConstraint(clause, instance, preds.get(instance)); + addOutLocationConstraint(clause, instance, succs.get(instance)); + } } // add transition constraint @@ -313,7 +298,8 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran * Builds a noninterference clause for the given transition. */ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { - final var clause = createBuilder(mInvariantPredicate); + final var clause = createBuilder(mInvariantPredicate, "non-interference clause for transition " + + transition.hashCode() + " with transformula " + transition.getTransformula()); // TODO support transitions with multiple predecessors (joins) final var interferingThread = getInterferingThread(transition); @@ -385,30 +371,23 @@ protected Term getLocIndexTerm(final IcfgLocation loc, final String proc) { protected void addTransitionConstraint(final HornClauseBuilder clause, final IIcfgTransition transition, final ThreadInstance updatedThread, final Collection localVariables) { final var tf = transition.getTransformula(); - final var assigned = tf.getAssignedVars(); final var substitution = new HashMap(); // deal with global variables for (final var global : mGlobalVars) { - if (assigned.contains(global.getVariable())) { - prepareSubstitution(clause, transition, substitution, global, global.getVariable()); - } else { - clause.sameBodyHeadVar(global); - } + prepareSubstitution(clause, transition, substitution, global, global.getVariable(), true); } // deal with local variables for (final HcLocalVar local : localVariables) { - if (local.getThreadInstance().equals(updatedThread) && assigned.contains(local.getVariable())) { - prepareSubstitution(clause, transition, substitution, local, local.getVariable()); - } else { - clause.sameBodyHeadVar(local); - } + final var updatable = local.getThreadInstance().equals(updatedThread); + prepareSubstitution(clause, transition, substitution, local, local.getVariable(), updatable); } // replace all other variables with auxiliary variables final Term formula = tf.getFormula(); for (final TermVariable v : formula.getFreeVars()) { + assert substitution.containsKey(v) || tf.getAuxVars().contains(v) : "not an auxiliary variable: " + v; substitution.computeIfAbsent(v, variable -> clause.getFreshBodyVar(variable, variable.getSort()).getTerm()); } @@ -417,13 +396,23 @@ protected void addTransitionConstraint(final HornClauseBuilder clause, final IIc } private static void prepareSubstitution(final HornClauseBuilder clause, final IIcfgTransition transition, - final Map substitution, final IHcReplacementVar rv, final IProgramVar pv) { - final TermVariable inVar = transition.getTransformula().getInVars().get(pv); - final TermVariable outVar = transition.getTransformula().getOutVars().get(pv); - substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + final Map substitution, final IHcReplacementVar rv, final IProgramVar pv, + final boolean canBeUpdated) { + final var tf = transition.getTransformula(); - assert !Objects.equals(inVar, outVar); - substitution.put(inVar, clause.getBodyVar(rv).getTerm()); + final TermVariable inVar = tf.getInVars().get(pv); + if (inVar != null) { + substitution.put(inVar, clause.getBodyVar(rv).getTerm()); + } + + final TermVariable outVar = tf.getOutVars().get(pv); + if (outVar != null && !Objects.equals(inVar, outVar)) { + substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + } + + if (canBeUpdated && tf.getAssignedVars().contains(pv)) { + clause.differentBodyHeadVar(rv); + } } protected ThreadInstance getInterferingThread(final IIcfgTransition transition) { From 3a232af1ef8cf7f7e31c6e343a7d719da921764e Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 11 Apr 2023 15:30:38 +0200 Subject: [PATCH 014/124] make sleep set vars boolean --- .../ExtensibleHornClauseProvider.java | 4 ++ .../icfgtochc/concurrent/HcSleepVar.java | 7 +-- .../concurrent/IcfgToChcConcurrent.java | 10 ++-- ...eepSetThreadModularHornClauseProvider.java | 50 +++++++++---------- 4 files changed, 38 insertions(+), 33 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java index ee81b4423c6..6b49d270381 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java @@ -71,4 +71,8 @@ protected final Term numeral(final long n) { protected Sort getIntSort() { return SmtSortUtils.getIntSort(mScript); } + + protected Sort getBoolSort() { + return SmtSortUtils.getBoolSort(mScript); + } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index e222bef9ebd..65ec8a70148 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -28,18 +28,15 @@ import java.util.Objects; -import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; public class HcSleepVar implements IHcThreadSpecificVar { - private static final String SORT = "Int"; - private final Sort mSort; private final ThreadInstance mInstance; - public HcSleepVar(final ThreadInstance instance, final Script script) { + public HcSleepVar(final ThreadInstance instance, final Sort sort) { mInstance = instance; - mSort = script.sort(SORT); + mSort = sort; } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java index fe77f051321..f98ead848fb 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java @@ -148,7 +148,7 @@ private void initializeDefaultVars(final Collection globalVariables addVariable(loc); // sleep set - final var sleep = new HcSleepVar(instance, getScript()); + final var sleep = new HcSleepVar(instance, getBoolSort()); mSleepVars.put(instance, sleep); addVariable(sleep); @@ -163,6 +163,10 @@ private Sort getIntSort() { return SmtSortUtils.getIntSort(getScript()); } + private Sort getBoolSort() { + return SmtSortUtils.getBoolSort(getScript()); + } + private List getDefaultArgs() { return mDefaultHeadVars.stream().map(HcVar::getTerm).collect(Collectors.toList()); } @@ -688,7 +692,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { // for each non-interference premise, insert the variable in the index for the interfering thread for (int i = 0; i < n; ++i) { final int newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(new ThreadInstance(sv.getThreadTemplateName(), i), getScript())); + .get(new HcSleepVar(new ThreadInstance(sv.getThreadTemplateName(), i), getBoolSort())); bodyArguments.get(i + 1).set(newIndex, bodyVar.getTerm()); } @@ -704,7 +708,7 @@ public HornClause getNonInterferenceClause(final IIcfgTransition edge) { bodyVars.add(id); for (int i = 0; i < n; ++i) { final var newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(new ThreadInstance(iv.getThreadTemplateName(), i), getScript())); + .get(new HcSleepVar(new ThreadInstance(iv.getThreadTemplateName(), i), getBoolSort())); bodyArguments.get(i + 1).set(newIndex, id.getTerm()); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 956b2ca8527..4ff4ed0c455 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -80,7 +80,7 @@ protected List createThreadSpecificVars(final ThreadInstan // add thread ID and sleep set result.add(0, new HcThreadIdVar(instance, mScript)); - result.add(1, new HcSleepVar(instance, mScript)); + result.add(1, new HcSleepVar(instance, getBoolSort())); return result; } @@ -89,10 +89,10 @@ protected List createThreadSpecificVars(final ThreadInstan protected HornClauseBuilder buildInitialClause(final Map initialLocations) { final var clause = super.buildInitialClause(initialLocations); - // all sleep variables are initialized to 0 + // all sleep variables are initialized to false for (final var instance : mInstances) { final var sleep = mSleepVars.get(instance); - clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getHeadVar(sleep).getTerm(), numeral(0))); + clause.addConstraint(SmtUtils.not(mScript, clause.getHeadVar(sleep).getTerm())); } return clause; @@ -107,7 +107,7 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran // active threads are not sleeping for (final var active : preds.keySet()) { final var sleep = mSleepVars.get(active); - clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(sleep).getTerm(), numeral(0))); + clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); } // thread IDs are ordered @@ -138,8 +138,8 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition } // interfering thread is not sleeping - final var sleep = new HcSleepVar(interferingThread, mScript); - clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(sleep).getTerm(), numeral(0))); + final var sleep = new HcSleepVar(interferingThread, getBoolSort()); + clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); // update sleep variables for (final var instance : mInstances) { @@ -170,7 +170,7 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra final Set activeThreads, final ThreadInstance primaryActiveThread, final ThreadInstance current) { final var loc = clause.getBodyVar(mLocationVars.get(current)); - final Term nonCommConstr = getNonCommutativityConstraint(current, loc.getTerm(), transition); + final Term commConstr = getCommutativityConstraint(current, loc.getTerm(), transition); // for now, the preference order is non-positional, and given by the ordering in mInstances final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); @@ -179,19 +179,18 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra if (activeThreads.contains(current)) { // no update of sleep variable } else if (ordering < 0) { + // current thread is AFTER primary thread // set sleep variable to false / leave unchanged clause.differentBodyHeadVar(sleep); final var oldSleep = clause.getBodyVar(sleep); final var newSleep = clause.getHeadVar(sleep); - clause.addConstraint(SmtUtils.ite(mScript, nonCommConstr, - SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), - SmtUtils.binaryEquality(mScript, newSleep.getTerm(), oldSleep.getTerm()))); + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), + SmtUtils.and(mScript, oldSleep.getTerm(), commConstr))); } else { // set sleep variable to false / true clause.differentBodyHeadVar(sleep); final var newSleep = clause.getHeadVar(sleep); - clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, - SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), nonCommConstr)); + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), commConstr)); } } @@ -207,28 +206,29 @@ private void updateSleepNonInterference(final HornClauseBuilder clause, final II final var currentLoc = clause.getBodyVar(mLocationVars.get(current)); final var currentId = clause.getBodyVar(mIdVars.get(current)); - final Term nonCommConstr = getNonCommutativityConstraint(current, currentLoc.getTerm(), transition); - clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, - SmtUtils.binaryEquality(mScript, newSleep.getTerm(), numeral(0)), - SmtUtils.or(mScript, + final Term commConstr = getCommutativityConstraint(current, currentLoc.getTerm(), transition); + // sleep' = (current < interfering \/ sleep) /\ commConstr + clause.addConstraint( + SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), SmtUtils.and(mScript, - SmtUtils.greater(mScript, currentId.getTerm(), - clause.getBodyVar(interferingId).getTerm()), - SmtUtils.binaryEquality(mScript, oldSleep.getTerm(), numeral(0))), - nonCommConstr))); + SmtUtils.or(mScript, + SmtUtils.less(mScript, currentId.getTerm(), + clause.getBodyVar(interferingId).getTerm()), + oldSleep.getTerm()), + commConstr))); } - protected Term getNonCommutativityConstraint(final ThreadInstance instance, final Term locVar, + protected Term getCommutativityConstraint(final ThreadInstance instance, final Term locVar, final IIcfgTransition currentEdge) { - final var nonCommLocations = new HashSet(); + final var commLocations = new HashSet(); for (final var loc : mThreadLocations.get(instance.getTemplateName())) { if (loc.getOutgoingEdges().stream() - .anyMatch(edge -> mIndependence.isIndependent(null, edge, currentEdge) != Dependence.INDEPENDENT)) { - nonCommLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); + .allMatch(e -> mIndependence.isIndependent(null, e, currentEdge) == Dependence.INDEPENDENT)) { + commLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); } } - return SmtUtils.or(mScript, nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) + return SmtUtils.or(mScript, commLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) .collect(Collectors.toList())); } } From eb16dfe90bda7e770c3f9e15656f1691214a3bb0 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 18 Apr 2023 19:29:08 +0200 Subject: [PATCH 015/124] IcfgToChc: add preferences --- .../ultimate/plugins/icfgtochc/IcfgToChc.java | 6 +- .../plugins/icfgtochc/IcfgToChcObserver.java | 34 +++---- .../concurrent/ChcProviderConcurrent.java | 16 +-- .../ChcProviderConcurrentWithLbe.java | 4 +- .../ChcProviderConcurrentWithSleep.java | 2 +- .../IcfgToChcPreferenceInitializer.java | 98 +++++++++++++++++++ .../preferences/IcfgToChcPreferences.java | 49 ++++------ 7 files changed, 152 insertions(+), 57 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChc.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChc.java index 3a2f34c50c3..57dfeffb5f9 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChc.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChc.java @@ -37,6 +37,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceInitializer; import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; /** @@ -72,7 +73,8 @@ public void setInputDefinition(final ModelType graphType) { @Override public List getObservers() { final List observers = new ArrayList<>(); - mObserver = new IcfgToChcObserver(mLogger, mServices); + final var prefs = new IcfgToChcPreferences(IcfgToChcPreferenceInitializer.getPreferenceProvider(mServices)); + mObserver = new IcfgToChcObserver(mLogger, mServices, prefs); observers.add(mObserver); return observers; } @@ -104,7 +106,7 @@ public List getDesiredToolIds() { @Override public IPreferenceInitializer getPreferences() { - return new IcfgToChcPreferences(); + return new IcfgToChcPreferenceInitializer(); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index a0dbfc86c60..72ac00cc785 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -49,9 +49,10 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.Mode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithLbe; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithSleep; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; /** * @@ -62,18 +63,15 @@ public class IcfgToChcObserver extends BaseObserver { private final ILogger mLogger; private final IUltimateServiceProvider mServices; + private final IcfgToChcPreferences mPrefs; private IElement mResult; - // TODO: Make these into settings - private static final boolean TREAT_AS_PARAMETRIC_PROGRAM = true; - private static final boolean USE_LBE_FOR_CONCURRENT_PROGRAMS = false; - private static final boolean USE_SLEEP_SETS = true; - private static final int THREAD_MODULAR_PROOF_LEVEL = 2; - - public IcfgToChcObserver(final ILogger logger, final IUltimateServiceProvider services) { + public IcfgToChcObserver(final ILogger logger, final IUltimateServiceProvider services, + final IcfgToChcPreferences prefs) { mLogger = logger; mServices = services; + mPrefs = prefs; } public IElement getModel() { @@ -111,7 +109,7 @@ private void processIcfg(final IIcfg icfg) { ModelUtils.copyAnnotations(icfg, mResult); } - private Logics getLogics(final Collection resultChcs, final ManagedScript mgdScript) { + private static Logics getLogics(final Collection resultChcs, final ManagedScript mgdScript) { final TermClassifier termClassifierChcs = new TermClassifier(); resultChcs.forEach(chc -> termClassifierChcs.checkTerm(chc.constructFormula(mgdScript, false))); final TermClassifier termClassifierConstraints = new TermClassifier(); @@ -159,24 +157,24 @@ private static boolean isReturnReachable(final IIcfg icfg) { private IChcProvider getChcProvider(final IIcfg icfg, final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { - if (TREAT_AS_PARAMETRIC_PROGRAM || IcfgUtils.isConcurrent(icfg)) { + if (mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC || IcfgUtils.isConcurrent(icfg)) { assert !isReturnReachable(icfg); - if (USE_LBE_FOR_CONCURRENT_PROGRAMS) { + if (mPrefs.useLiptonReduction()) { // TODO support LBE for parametric programs - assert !TREAT_AS_PARAMETRIC_PROGRAM; + assert mPrefs.concurrencyMode() == ConcurrencyMode.SINGLE_MAIN_THREAD; // TODO support combination of LBE and sleep sets - assert !USE_SLEEP_SETS; + assert !mPrefs.useSleepSets(); return new ChcProviderConcurrentWithLbe(mgdScript, hcSymbolTable, mServices); } - final var mode = TREAT_AS_PARAMETRIC_PROGRAM ? Mode.PARAMETRIC : Mode.SINGLE_MAIN_THREAD; - if (USE_SLEEP_SETS) { - return new ChcProviderConcurrentWithSleep(mServices, mgdScript, hcSymbolTable, mode, - THREAD_MODULAR_PROOF_LEVEL); + if (mPrefs.useSleepSets()) { + return new ChcProviderConcurrentWithSleep(mServices, mgdScript, hcSymbolTable, mPrefs.concurrencyMode(), + mPrefs.getThreadModularProofLevel()); } - return new ChcProviderConcurrent(mgdScript, hcSymbolTable, mode, THREAD_MODULAR_PROOF_LEVEL); + return new ChcProviderConcurrent(mgdScript, hcSymbolTable, mPrefs.concurrencyMode(), + mPrefs.getThreadModularProofLevel()); } return new ChcProviderForCalls(mgdScript, hcSymbolTable); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java index 973e7d66dd2..76583d5f091 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java @@ -29,17 +29,21 @@ * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) */ public class ChcProviderConcurrent implements IChcProvider { - public enum Mode { + public enum ConcurrencyMode { SINGLE_MAIN_THREAD, PARAMETRIC } + public enum SpecMode { + ASSERT_VIOLATIONS, PRE_POST + } + protected final ManagedScript mMgdScript; protected final HcSymbolTable mHcSymbolTable; - protected final Mode mMode; + protected final ConcurrencyMode mMode; protected final int mLevel; - public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, final Mode mode, - final int level) { + public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, + final ConcurrencyMode mode, final int level) { mMgdScript = mgdScript; mHcSymbolTable = hcSymbolTable; mMode = mode; @@ -118,14 +122,14 @@ public Collection getHornClauses(final IIcfg icfg) { protected Pair, List> getThreadNumbersAndUnboundedThreads(final IIcfg icfg) { - if (mMode == Mode.PARAMETRIC) { + if (mMode == ConcurrencyMode.PARAMETRIC) { final var numberOfThreads = icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> mLevel)); final var unbounded = List.copyOf(numberOfThreads.keySet()); return new Pair<>(numberOfThreads, unbounded); } - assert mMode == Mode.SINGLE_MAIN_THREAD : "Unknown mode: " + mMode; + assert mMode == ConcurrencyMode.SINGLE_MAIN_THREAD : "Unknown mode: " + mMode; final var forksInLoops = IcfgUtils.getForksInLoop(icfg); final var instanceMap = icfg.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index 3f1b28fe995..0613f59c78e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -9,7 +9,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.Mode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; /** * ChcProvider for concurrent programs based on the petri-net using LBE. @@ -34,7 +34,7 @@ public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbo @Override public Collection getHornClauses(final IIcfg icfg) { final var reduced = new IcfgLiptonReducer(mServices, icfg, MAXIMUM_NUMBER_OF_THREADS).getResult(); - return new ChcProviderConcurrent(mMgdScript, mHcSymbolTable, Mode.SINGLE_MAIN_THREAD, MAXIMUM_NUMBER_OF_THREADS) + return new ChcProviderConcurrent(mMgdScript, mHcSymbolTable, ConcurrencyMode.SINGLE_MAIN_THREAD, MAXIMUM_NUMBER_OF_THREADS) .getHornClauses(reduced); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java index ed86d289cca..6f77286af02 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java @@ -40,7 +40,7 @@ public class ChcProviderConcurrentWithSleep extends ChcProviderConcurrent { private final IUltimateServiceProvider mServices; public ChcProviderConcurrentWithSleep(final IUltimateServiceProvider services, final ManagedScript mgdScript, - final HcSymbolTable hcSymbolTable, final Mode mode, final int level) { + final HcSymbolTable hcSymbolTable, final ConcurrencyMode mode, final int level) { super(mgdScript, hcSymbolTable, mode, level); mServices = services; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java new file mode 100644 index 00000000000..b837943c01d --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2019 Alexander Nutz (nutz@informatik.uni-freiburg.de) + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2019-2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences; + +import de.uni_freiburg.informatik.ultimate.core.lib.preferences.UltimatePreferenceInitializer; +import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; +import de.uni_freiburg.informatik.ultimate.core.model.preferences.PreferenceType; +import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItem; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.SpecMode; + +/** + * + * @author Alexander Nutz (nutz@informatik.uni-freiburg.de) + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + */ +public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitializer { + + public static final String LABEL_CONCURRENCY_MODE = "Concurrency mode"; + public static final String DESC_CONCURRENCY_MODE = + "Whether the program starts as a single thread, which may dynamically fork and join new threads, " + + "or as a parametric program, i.e., with an unbounded number of threads, " + + "all starting at once."; + public static final ConcurrencyMode DEF_CONCURRENCY_MODE = ConcurrencyMode.PARAMETRIC; + + public static final String LABEL_SPEC_MODE = "Specification mode"; + public static final String DESC_SPEC_MODE = "Describes how the specification for the program is given."; + public static final SpecMode DEF_SPEC_MODE = SpecMode.PRE_POST; + + public static final String LABEL_THREADMODULAR_LEVEL = "Thread-Modular Proof Level"; + public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; + public static final int DEF_THREADMODULAR_LEVEL = 2; + + public static final String LABEL_LIPTON_REDUCTION = "Apply Lipton reduction"; + public static final String DESC_LIPTON_REDUCTION = "If enabled, Lipton reduction is applied to simplify thread " + + "templates, before a thread-modular proof is computed."; + public static final boolean DEF_LIPTON_REDUCTION = false; + + public static final String LABEL_SLEEP_SET_REDUCTION = "Enable sleep set reduction"; + public static final String DESC_SLEEP_SET_REDUCTION = "If enabled, symbolic sleep set reduction is applied to the " + + "program. This allows for more programs to be proven correct."; + public static final boolean DEF_SLEEP_SET_REDUCTION = true; + + /** + * Default constructor. + */ + public IcfgToChcPreferenceInitializer() { + super(Activator.PLUGIN_ID, Activator.PLUGIN_NAME); + } + + @Override + protected UltimatePreferenceItem[] initDefaultPreferences() { + return new UltimatePreferenceItem[] { + // Settings for thread-modular proofs + new UltimatePreferenceItem<>(LABEL_CONCURRENCY_MODE, DEF_CONCURRENCY_MODE, DESC_CONCURRENCY_MODE, + PreferenceType.Combo, ConcurrencyMode.values()), + new UltimatePreferenceItem<>(LABEL_SPEC_MODE, DEF_SPEC_MODE, DESC_SPEC_MODE, PreferenceType.Combo, + SpecMode.values()), + new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, + DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), + new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, + PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, + DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean) }; + } + + public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { + return services.getPreferenceProvider(Activator.PLUGIN_ID); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 4a82a2f5536..627c2a1e89f 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -1,6 +1,6 @@ /* - * Copyright (C) 2019 Alexander Nutz (nutz@informatik.uni-freiburg.de) - * Copyright (C) 2019 University of Freiburg + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg * * This file is part of the ULTIMATE IcfgToChc plug-in. * @@ -26,41 +26,34 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences; -import de.uni_freiburg.informatik.ultimate.core.lib.preferences.UltimatePreferenceInitializer; import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; -import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItem; -import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.SpecMode; -/** - * - * @author Alexander Nutz (nutz@informatik.uni-freiburg.de) - * - */ -public class IcfgToChcPreferences extends UltimatePreferenceInitializer { +public class IcfgToChcPreferences { + private final IPreferenceProvider mPrefs; -// public static final String LABEL_TRANSFORMATION_TYPE = "TransformationType"; -// private static final String DESC_TRANSFORMATION_TYPE = ""; + public IcfgToChcPreferences(final IPreferenceProvider prefs) { + mPrefs = prefs; + } - /** - * Default constructor. - */ - public IcfgToChcPreferences() { - super(Activator.PLUGIN_ID, Activator.PLUGIN_NAME); + public ConcurrencyMode concurrencyMode() { + return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONCURRENCY_MODE, ConcurrencyMode.class); } - @Override - protected UltimatePreferenceItem[] initDefaultPreferences() { - return new UltimatePreferenceItem[] { + public SpecMode specMode() { + return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_SPEC_MODE, SpecMode.class); + } -// new UltimatePreferenceItem<>(LABEL_TRANSFORMATION_TYPE, -// TransformationTestType.LOOP_ACCELERATION_EXAMPLE, DESC_TRANSFORMATION_TYPE, -// PreferenceType.Combo, TransformationTestType.values()), + public int getThreadModularProofLevel() { + return mPrefs.getInt(IcfgToChcPreferenceInitializer.LABEL_THREADMODULAR_LEVEL); + } - }; + public boolean useLiptonReduction() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_LIPTON_REDUCTION); } - public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { - return services.getPreferenceProvider(Activator.PLUGIN_ID); + public boolean useSleepSets() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SLEEP_SET_REDUCTION); } } From 77aeaca517a4a5c53d85842e7f7ae61947c09040 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 18 Apr 2023 22:16:26 +0200 Subject: [PATCH 016/124] extract ConcurrencyMode functionality --- .../plugins/icfgtochc/IcfgToChcObserver.java | 2 +- .../concurrent/ChcProviderConcurrent.java | 69 +--------- .../ChcProviderConcurrentWithLbe.java | 1 - .../icfgtochc/concurrent/ConcurrencyMode.java | 125 ++++++++++++++++++ .../IcfgToChcPreferenceInitializer.java | 4 +- .../preferences/IcfgToChcPreferences.java | 7 +- 6 files changed, 137 insertions(+), 71 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 72ac00cc785..f1763038928 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -49,9 +49,9 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithLbe; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithSleep; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; /** diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java index 76583d5f091..fecb4deb923 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -10,7 +9,6 @@ import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgForkTransitionThreadCurrent; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgJoinTransitionThreadCurrent; @@ -29,13 +27,6 @@ * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) */ public class ChcProviderConcurrent implements IChcProvider { - public enum ConcurrencyMode { - SINGLE_MAIN_THREAD, PARAMETRIC - } - - public enum SpecMode { - ASSERT_VIOLATIONS, PRE_POST - } protected final ManagedScript mMgdScript; protected final HcSymbolTable mHcSymbolTable; @@ -54,14 +45,15 @@ public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable @Override public Collection getHornClauses(final IIcfg icfg) { - final var threadBounds = getThreadNumbersAndUnboundedThreads(icfg); + final var threadBounds = mMode.getThreadNumbersAndUnboundedThreads(icfg, mLevel); final var numberOfThreads = threadBounds.getFirst(); final var unboundedThreads = threadBounds.getSecond(); final var factory = createFactory(numberOfThreads, icfg); final List result = new ArrayList<>(); - final var initialClause = factory.buildInitialClause(getInitialLocations(icfg, factory.getInstances())).build(); + final var initialClause = + factory.buildInitialClause(mMode.getInitialLocations(icfg, factory.getInstances())).build(); result.add(initialClause); final Map entryNodes = icfg.getProcedureEntryNodes(); @@ -120,60 +112,7 @@ public Collection getHornClauses(final IIcfg icfg) { .collect(Collectors.toList()); } - protected Pair, List> - getThreadNumbersAndUnboundedThreads(final IIcfg icfg) { - if (mMode == ConcurrencyMode.PARAMETRIC) { - final var numberOfThreads = - icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> mLevel)); - final var unbounded = List.copyOf(numberOfThreads.keySet()); - return new Pair<>(numberOfThreads, unbounded); - } - - assert mMode == ConcurrencyMode.SINGLE_MAIN_THREAD : "Unknown mode: " + mMode; - - final var forksInLoops = IcfgUtils.getForksInLoop(icfg); - final var instanceMap = icfg.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); - final Map numberOfThreads = new HashMap<>(); - icfg.getInitialNodes().forEach(x -> numberOfThreads.put(x.getProcedure(), 1)); - final List unboundedThreads = new ArrayList<>(); - // TODO: This needs to be more accurate in general - for (final var fork : instanceMap.keySet()) { - final String procedure = fork.getNameOfForkedProcedure(); - // TODO: Only add if fork is reachable - if (forksInLoops.contains(fork)) { - numberOfThreads.put(procedure, mLevel); - unboundedThreads.add(procedure); - } else { - final Integer oldCount = numberOfThreads.getOrDefault(procedure, 0); - if (oldCount == mLevel) { - unboundedThreads.add(procedure); - } else { - numberOfThreads.put(procedure, oldCount + 1); - } - } - } - - return new Pair<>(numberOfThreads, unboundedThreads); - } - - protected Map getInitialLocations(final IIcfg icfg, - final List instances) { - switch (mMode) { - case PARAMETRIC: - // combine each initial location (usually there is only one) with ALL instances of its template - return icfg - .getInitialNodes().stream().flatMap(l -> instances.stream() - .filter(i -> i.getTemplateName().equals(l.getProcedure())).map(i -> new Pair<>(i, l))) - .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); - case SINGLE_MAIN_THREAD: - // combine each initial location (usually there is only one) with instance 0 of its template - return icfg.getInitialNodes().stream() - .collect(Collectors.toMap(l -> new ThreadInstance(l.getProcedure(), 0), l -> l)); - } - throw new UnsupportedOperationException("Unknown mode: " + mMode); - } - - protected List> getErrorLocations(final IIcfg icfg, + private static List> getErrorLocations(final IIcfg icfg, final List instances) { return icfg.getProcedureErrorNodes().entrySet().stream() .flatMap(e -> e.getValue().stream().map(l -> new Pair<>(e.getKey(), l))).flatMap(e -> instances.stream() diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java index 0613f59c78e..44eef72a887 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java @@ -9,7 +9,6 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; /** * ChcProvider for concurrent programs based on the petri-net using LBE. diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java new file mode 100644 index 00000000000..6c515e5c599 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2022 Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; + +public enum ConcurrencyMode { + /** + * A single instance of the main thread is started initially. More threads are created dynamically through fork and + * join statements. + */ + SINGLE_MAIN_THREAD, + + /** + * An unbounded number of threads (all with the same template) are all started at the same time. + */ + PARAMETRIC; + + /** + * Given an {@link IIcfg}, determines how many thread instances of each template should be considered, and for which + * thread templates we assume an unbounded number of instances. + * + * @param icfg + * The (unpetrified) control flow graph of the concurrent program + * @param level + * The thread modularity level of the analysis + * @return a pair, where the first component maps each thread template to the number of instances to consider, and + * the second component contains all threads that may have more than {@code level} instances. + */ + public Pair, List> getThreadNumbersAndUnboundedThreads(final IIcfg icfg, + final int level) { + if (this == ConcurrencyMode.PARAMETRIC) { + final var numberOfThreads = + icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> level)); + final var unbounded = List.copyOf(numberOfThreads.keySet()); + return new Pair<>(numberOfThreads, unbounded); + } + + assert this == ConcurrencyMode.SINGLE_MAIN_THREAD : "Unknown mode: " + this; + + final var forksInLoops = IcfgUtils.getForksInLoop(icfg); + final var instanceMap = icfg.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); + final Map numberOfThreads = new HashMap<>(); + icfg.getInitialNodes().forEach(x -> numberOfThreads.put(x.getProcedure(), 1)); + final List unboundedThreads = new ArrayList<>(); + // TODO: This needs to be more accurate in general + for (final var fork : instanceMap.keySet()) { + final String procedure = fork.getNameOfForkedProcedure(); + // TODO: Only add if fork is reachable + if (forksInLoops.contains(fork)) { + numberOfThreads.put(procedure, level); + unboundedThreads.add(procedure); + } else { + final Integer oldCount = numberOfThreads.getOrDefault(procedure, 0); + if (oldCount == level) { + unboundedThreads.add(procedure); + } else { + numberOfThreads.put(procedure, oldCount + 1); + } + } + } + + return new Pair<>(numberOfThreads, unboundedThreads); + } + + /** + * Determines the initial locations of a given program. + * + * @param icfg + * The control flow graph of the program + * @param instances + * The set of thread instances considered by the analyis + * @return A mapping from initially running thread instances to their initial locations + */ + public Map getInitialLocations(final IIcfg icfg, + final List instances) { + switch (this) { + case PARAMETRIC: + // combine each initial location (usually there is only one) with ALL instances of its template + return icfg + .getInitialNodes().stream().flatMap(l -> instances.stream() + .filter(i -> i.getTemplateName().equals(l.getProcedure())).map(i -> new Pair<>(i, l))) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); + case SINGLE_MAIN_THREAD: + // combine each initial location (usually there is only one) with instance 0 of its template + return icfg.getInitialNodes().stream() + .collect(Collectors.toMap(l -> new ThreadInstance(l.getProcedure(), 0), l -> l)); + } + throw new UnsupportedOperationException("Unknown mode: " + this); + } +} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index b837943c01d..f5896b2f84b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -33,8 +33,8 @@ import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItem; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.SpecMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences.SpecMode; /** * diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 627c2a1e89f..5f95db4960e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -27,12 +27,15 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences; import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.ConcurrencyMode; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent.SpecMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; public class IcfgToChcPreferences { private final IPreferenceProvider mPrefs; + public enum SpecMode { + ASSERT_VIOLATIONS, PRE_POST + } + public IcfgToChcPreferences(final IPreferenceProvider prefs) { mPrefs = prefs; } From b6359addecc64e84981e490714695e8ce6b8f9ce Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 18 Apr 2023 23:19:16 +0200 Subject: [PATCH 017/124] refactor Horn clause generation Definition of the different kinds of clauses, and iteration over the Icfg are tightly coupled. Hence they are now managed by the same class. --- .../icfgtochc/ChcProviderForCalls.java | 4 +- .../plugins/icfgtochc/IcfgToChcObserver.java | 34 ++--- .../concurrent/ChcProviderConcurrent.java | 128 ------------------ .../ChcProviderConcurrentWithLbe.java | 39 ------ .../ChcProviderConcurrentWithSleep.java | 57 -------- .../icfgtochc/concurrent/ConcurrencyMode.java | 11 +- ...eepSetThreadModularHornClauseProvider.java | 23 ++-- .../ThreadModularHornClauseProvider.java | 116 ++++++++++++++-- 8 files changed, 136 insertions(+), 276 deletions(-) delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java index 68e57b8daf5..742c83d39a8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java @@ -41,7 +41,6 @@ import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.cfg.Call; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; /** * @@ -49,7 +48,7 @@ * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) * */ -public class ChcProviderForCalls implements IChcProvider { +public class ChcProviderForCalls { private final ManagedScript mMgdScript; private final HcSymbolTable mHcSymbolTable; private IIcfg mIcfg; @@ -71,7 +70,6 @@ public ChcProviderForCalls(final ManagedScript mgdScript, final HcSymbolTable hc mMgdScript.constructFreshTermVariable(ASSERTIONVIOLATEDVARNAME, SmtSortUtils.getBoolSort(mMgdScript)); } - @Override @SuppressWarnings("unchecked") public Collection getHornClauses(final IIcfg icfg) { /* add chcs for the icfg's edges */ diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index f1763038928..7b1e785da27 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -47,11 +47,12 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; import de.uni_freiburg.informatik.ultimate.logic.Logics; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrent; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithLbe; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ChcProviderConcurrentWithSleep; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.SleepSetThreadModularHornClauseProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; /** @@ -91,10 +92,11 @@ public boolean process(final IElement root) throws Exception { private void processIcfg(final IIcfg icfg) { final ManagedScript mgdScript = icfg.getCfgSmtToolkit().getManagedScript(); final HcSymbolTable hcSymbolTable = new HcSymbolTable(mgdScript); - final Collection resultChcs = getChcProvider(icfg, mgdScript, hcSymbolTable).getHornClauses(icfg); + final Collection resultChcs = getHornClauses(icfg, mgdScript, hcSymbolTable); final boolean isReturnReachable = isReturnReachable(icfg); - final boolean hasNonLinearClauses = isReturnReachable || !IcfgUtils.getForksInLoop(icfg).isEmpty(); + final boolean hasNonLinearClauses = isReturnReachable || !IcfgUtils.getForksInLoop(icfg).isEmpty() + || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC; final ChcCategoryInfo chcCategoryInfo = new ChcCategoryInfo(getLogics(resultChcs, mgdScript), hasNonLinearClauses); @@ -155,7 +157,7 @@ private static boolean isReturnReachable(final IIcfg icfg) { return new IcfgEdgeIterator(icfg).asStream().anyMatch(IIcfgSummaryTransition.class::isInstance); } - private IChcProvider getChcProvider(final IIcfg icfg, final ManagedScript mgdScript, + private Collection getHornClauses(IIcfg icfg, final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable) { if (mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC || IcfgUtils.isConcurrent(icfg)) { assert !isReturnReachable(icfg); @@ -166,20 +168,20 @@ private IChcProvider getChcProvider(final IIcfg icfg, final Manage // TODO support combination of LBE and sleep sets assert !mPrefs.useSleepSets(); - return new ChcProviderConcurrentWithLbe(mgdScript, hcSymbolTable, mServices); + // Create 2 instances of every thread, to ensure the reduction checks mover properties of each thread + // template against another copy of the same template. + final int instanceCount = 2; + + icfg = new IcfgLiptonReducer(mServices, icfg, instanceCount).getResult(); } if (mPrefs.useSleepSets()) { - return new ChcProviderConcurrentWithSleep(mServices, mgdScript, hcSymbolTable, mPrefs.concurrencyMode(), - mPrefs.getThreadModularProofLevel()); + final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, true); + return new SleepSetThreadModularHornClauseProvider(mgdScript, icfg, hcSymbolTable, independence, mPrefs) + .getClauses(); } - return new ChcProviderConcurrent(mgdScript, hcSymbolTable, mPrefs.concurrencyMode(), - mPrefs.getThreadModularProofLevel()); + return new ThreadModularHornClauseProvider(mgdScript, icfg, hcSymbolTable, mPrefs).getClauses(); } - return new ChcProviderForCalls(mgdScript, hcSymbolTable); - } - - public interface IChcProvider { - Collection getHornClauses(final IIcfg icfg); + return new ChcProviderForCalls(mgdScript, hcSymbolTable).getHornClauses(icfg); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java deleted file mode 100644 index fecb4deb923..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrent.java +++ /dev/null @@ -1,128 +0,0 @@ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgForkTransitionThreadCurrent; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgJoinTransitionThreadCurrent; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Triple; - -/** - * ChcProvider for concurrent programs based on the icfg. - * - * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - */ -public class ChcProviderConcurrent implements IChcProvider { - - protected final ManagedScript mMgdScript; - protected final HcSymbolTable mHcSymbolTable; - protected final ConcurrencyMode mMode; - protected final int mLevel; - - public ChcProviderConcurrent(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, - final ConcurrencyMode mode, final int level) { - mMgdScript = mgdScript; - mHcSymbolTable = hcSymbolTable; - mMode = mode; - mLevel = level; - - assert level >= 1; - } - - @Override - public Collection getHornClauses(final IIcfg icfg) { - final var threadBounds = mMode.getThreadNumbersAndUnboundedThreads(icfg, mLevel); - final var numberOfThreads = threadBounds.getFirst(); - final var unboundedThreads = threadBounds.getSecond(); - - final var factory = createFactory(numberOfThreads, icfg); - final List result = new ArrayList<>(); - - final var initialClause = - factory.buildInitialClause(mMode.getInitialLocations(icfg, factory.getInstances())).build(); - result.add(initialClause); - - final Map entryNodes = icfg.getProcedureEntryNodes(); - for (final String proc : numberOfThreads.keySet()) { - final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); - while (edges.hasNext()) { - final IcfgEdge edge = edges.next(); - for (final var prePost : getCartesianPrePostProduct(factory, icfg, edge)) { - final var clause = factory - .buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()) - .build(); - result.add(clause); - } - - if (unboundedThreads.contains(proc)) { - result.add(factory.buildNonInterferenceClause(edge).build()); - } - } - } - - final var errorLocs = getErrorLocations(icfg, factory.getInstances()); - for (final var pair : errorLocs) { - final var safetyClause = factory.buildSafetyClause(pair.getFirst(), pair.getSecond()).build(); - result.add(safetyClause); - } - - return result; - } - - private static List, Map, ThreadInstance>> - getCartesianPrePostProduct(final ThreadModularHornClauseProvider factory, final IIcfg icfg, - final IcfgEdge edge) { - if (edge instanceof IIcfgForkTransitionThreadCurrent) { - final var forkCurrent = (IIcfgForkTransitionThreadCurrent) edge; - final var forkEntry = icfg.getProcedureEntryNodes().get(forkCurrent.getNameOfForkedProcedure()); - final var result = - new ArrayList, Map, ThreadInstance>>(); - for (final var instance : factory.getInstances(edge.getPrecedingProcedure())) { - final var preds = Map.of(instance, edge.getSource()); - for (final var forked : factory.getInstances(forkCurrent.getNameOfForkedProcedure())) { - if (Objects.equals(instance, forked)) { - continue; - } - final var succs = Map.of(instance, edge.getTarget(), forked, forkEntry); - result.add(new Triple<>(preds, succs, instance)); - } - } - return result; - } - if (edge instanceof IIcfgJoinTransitionThreadCurrent) { - assert false : "Joins not supported"; - } - - return factory.getInstances(edge.getPrecedingProcedure()).stream() - .map(t -> new Triple<>(Map.of(t, edge.getSource()), Map.of(t, edge.getTarget()), t)) - .collect(Collectors.toList()); - } - - private static List> getErrorLocations(final IIcfg icfg, - final List instances) { - return icfg.getProcedureErrorNodes().entrySet().stream() - .flatMap(e -> e.getValue().stream().map(l -> new Pair<>(e.getKey(), l))).flatMap(e -> instances.stream() - .filter(i -> i.getTemplateName().equals(e.getKey())).map(i -> new Pair<>(i, e.getValue()))) - .collect(Collectors.toList()); - } - - protected ThreadModularHornClauseProvider createFactory(final Map numberOfThreads, - final IIcfg icfg) { - return new ThreadModularHornClauseProvider(numberOfThreads, mMgdScript, icfg.getCfgSmtToolkit(), mHcSymbolTable, - x -> true); - } -} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java deleted file mode 100644 index 44eef72a887..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithLbe.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; - -import java.util.Collection; - -import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.IcfgToChcObserver.IChcProvider; - -/** - * ChcProvider for concurrent programs based on the petri-net using LBE. - * - * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * - */ -public class ChcProviderConcurrentWithLbe implements IChcProvider { - private static final int MAXIMUM_NUMBER_OF_THREADS = 2; - - private final ManagedScript mMgdScript; - private final HcSymbolTable mHcSymbolTable; - private final IUltimateServiceProvider mServices; - - public ChcProviderConcurrentWithLbe(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, - final IUltimateServiceProvider services) { - mMgdScript = mgdScript; - mHcSymbolTable = hcSymbolTable; - mServices = services; - } - - @Override - public Collection getHornClauses(final IIcfg icfg) { - final var reduced = new IcfgLiptonReducer(mServices, icfg, MAXIMUM_NUMBER_OF_THREADS).getResult(); - return new ChcProviderConcurrent(mMgdScript, mHcSymbolTable, ConcurrencyMode.SINGLE_MAIN_THREAD, MAXIMUM_NUMBER_OF_THREADS) - .getHornClauses(reduced); - } -} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java deleted file mode 100644 index 6f77286af02..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ChcProviderConcurrentWithSleep.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE IcfgToChc plug-in. - * - * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE IcfgToChc plug-in. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; - -import java.util.Map; -import java.util.stream.Collectors; - -import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; - -public class ChcProviderConcurrentWithSleep extends ChcProviderConcurrent { - private final IUltimateServiceProvider mServices; - - public ChcProviderConcurrentWithSleep(final IUltimateServiceProvider services, final ManagedScript mgdScript, - final HcSymbolTable hcSymbolTable, final ConcurrencyMode mode, final int level) { - super(mgdScript, hcSymbolTable, mode, level); - mServices = services; - } - - @Override - protected ThreadModularHornClauseProvider createFactory(final Map numberOfThreads, - final IIcfg icfg) { - final var independence = new SemanticIndependenceRelation<>(mServices, mMgdScript, false, true); - final var locations = icfg.getProgramPoints().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); - return new SleepSetThreadModularHornClauseProvider(numberOfThreads, mMgdScript, icfg.getCfgSmtToolkit(), - mHcSymbolTable, x -> true, independence, locations); - } -} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java index 6c515e5c599..8ba4d826ebb 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java @@ -27,10 +27,11 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; -import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; @@ -61,12 +62,12 @@ public enum ConcurrencyMode { * @return a pair, where the first component maps each thread template to the number of instances to consider, and * the second component contains all threads that may have more than {@code level} instances. */ - public Pair, List> getThreadNumbersAndUnboundedThreads(final IIcfg icfg, + public Pair, Set> getThreadNumbersAndUnboundedThreads(final IIcfg icfg, final int level) { if (this == ConcurrencyMode.PARAMETRIC) { final var numberOfThreads = icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> level)); - final var unbounded = List.copyOf(numberOfThreads.keySet()); + final var unbounded = Set.copyOf(numberOfThreads.keySet()); return new Pair<>(numberOfThreads, unbounded); } @@ -76,7 +77,7 @@ public Pair, List> getThreadNumbersAndUnboundedThre final var instanceMap = icfg.getCfgSmtToolkit().getConcurrencyInformation().getThreadInstanceMap(); final Map numberOfThreads = new HashMap<>(); icfg.getInitialNodes().forEach(x -> numberOfThreads.put(x.getProcedure(), 1)); - final List unboundedThreads = new ArrayList<>(); + final Set unboundedThreads = new HashSet<>(); // TODO: This needs to be more accurate in general for (final var fork : instanceMap.keySet()) { final String procedure = fork.getNameOfForkedProcedure(); @@ -106,7 +107,7 @@ public Pair, List> getThreadNumbersAndUnboundedThre * The set of thread instances considered by the analyis * @return A mapping from initially running thread instances to their initial locations */ - public Map getInitialLocations(final IIcfg icfg, + public Map getInitialLocations(final IIcfg icfg, final List instances) { switch (this) { case PARAMETRIC: diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 4ff4ed0c455..262a26b98ab 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -30,21 +30,19 @@ import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; -import java.util.function.Predicate; import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornClauseProvider { @@ -54,14 +52,13 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl private final Map mIdVars; private final Map mSleepVars; - public SleepSetThreadModularHornClauseProvider(final Map numberOfThreads, - final ManagedScript mgdScript, final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, - final Predicate variableFilter, - final IIndependenceRelation> independence, - final Map> threadLocations) { - super(numberOfThreads, mgdScript, cfgSmtToolkit, symbolTable, variableFilter); + public SleepSetThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, + final HcSymbolTable symbolTable, final IIndependenceRelation> independence, + final IcfgToChcPreferences prefs) { + super(mgdScript, icfg, symbolTable, prefs); mIndependence = independence; - mThreadLocations = threadLocations; + mThreadLocations = icfg.getProgramPoints().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); mIdVars = extractThreadVars(HcThreadIdVar.class); mSleepVars = extractThreadVars(HcSleepVar.class); @@ -86,8 +83,8 @@ protected List createThreadSpecificVars(final ThreadInstan } @Override - protected HornClauseBuilder buildInitialClause(final Map initialLocations) { - final var clause = super.buildInitialClause(initialLocations); + protected HornClauseBuilder buildInitialClause() { + final var clause = super.buildInitialClause(); // all sleep variables are initialized to false for (final var instance : mInstances) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 80a1cea69b8..f58d4952fff 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -41,9 +41,13 @@ import java.util.stream.Stream; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgForkTransitionThreadCurrent; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgJoinTransitionThreadCurrent; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; @@ -53,9 +57,11 @@ import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Triple; /** * Generates Horn clauses for a thread-modular proof. @@ -68,6 +74,8 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide private static final String FUNCTION_NAME = "Inv"; private static final int INTERFERING_INSTANCE_ID = -1; + protected final IIcfg mIcfg; + protected final IcfgToChcPreferences mPrefs; private final IIcfgSymbolTable mCfgSymbolTable; private final Predicate mVariableFilter; @@ -78,7 +86,9 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide // used as location for threads that are not currently running private final Term mBottomLocation; + protected final Set mTemplates; protected final List mInstances; + protected final Set mUnboundedTemplates; protected final PredicateInfo mInvariantPredicate; @@ -87,14 +97,27 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide protected final Map mLocationVars = new HashMap<>(); protected final NestedMap2 mLocalVars = new NestedMap2<>(); - public ThreadModularHornClauseProvider(final Map numberOfThreads, final ManagedScript mgdScript, - final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable symbolTable, - final Predicate variableFilter) { + public ThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, + final HcSymbolTable symbolTable, final IcfgToChcPreferences prefs) { + this(mgdScript, icfg, symbolTable, x -> true, prefs); + } + + public ThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, + final HcSymbolTable symbolTable, final Predicate variableFilter, + final IcfgToChcPreferences prefs) { super(mgdScript, symbolTable); - mCfgSymbolTable = cfgSmtToolkit.getSymbolTable(); + mIcfg = icfg; + mPrefs = prefs; + mCfgSymbolTable = mIcfg.getCfgSmtToolkit().getSymbolTable(); mVariableFilter = variableFilter; + + final var threadInfo = + mPrefs.concurrencyMode().getThreadNumbersAndUnboundedThreads(icfg, mPrefs.getThreadModularProofLevel()); + mTemplates = Set.copyOf(threadInfo.getFirst().keySet()); + mInstances = getInstances(threadInfo.getFirst()); + mUnboundedTemplates = threadInfo.getSecond(); + mBottomLocation = numeral(-1); - mInstances = getInstances(numberOfThreads); mInvariantPredicate = createInvariantPredicate(); } @@ -193,34 +216,93 @@ protected List createThreadSpecificVars(final ThreadInstan return result; } - // Horn clause generation + // IIcfg iteration // ----------------------------------------------------------------------------------------------------------------- @Override protected List buildAllClauses() { final var result = new ArrayList(); - // result.add(buildInitialClause()); - // for (final var entry : mErrorLocations.getSetOfPairs()) { - // result.add(buildSafetyClause(entry.getKey(), entry.getValue())); - // } - // TODO inductive clauses - // TODO noninterference clauses + final var initialClause = buildInitialClause(); + result.add(initialClause); + + final var entryNodes = mIcfg.getProcedureEntryNodes(); + for (final String proc : mTemplates) { + final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); + while (edges.hasNext()) { + final IcfgEdge edge = edges.next(); + for (final var prePost : getCartesianPrePostProduct(edge)) { + final var clause = + buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()); + result.add(clause); + } + + if (mUnboundedTemplates.contains(proc)) { + result.add(buildNonInterferenceClause(edge)); + } + } + } + + final var errorLocs = getErrorLocations(); + for (final var pair : errorLocs) { + final var safetyClause = buildSafetyClause(pair.getFirst(), pair.getSecond()); + result.add(safetyClause); + } return result; } + private List, Map, ThreadInstance>> + getCartesianPrePostProduct(final IcfgEdge edge) { + if (edge instanceof IIcfgForkTransitionThreadCurrent) { + final var forkCurrent = (IIcfgForkTransitionThreadCurrent) edge; + final var forkEntry = mIcfg.getProcedureEntryNodes().get(forkCurrent.getNameOfForkedProcedure()); + final var result = + new ArrayList, Map, ThreadInstance>>(); + for (final var instance : getInstances(edge.getPrecedingProcedure())) { + final var preds = Map.of(instance, edge.getSource()); + for (final var forked : getInstances(forkCurrent.getNameOfForkedProcedure())) { + if (Objects.equals(instance, forked)) { + continue; + } + final var succs = Map.of(instance, edge.getTarget(), forked, forkEntry); + result.add(new Triple<>(preds, succs, instance)); + } + } + return result; + } + if (edge instanceof IIcfgJoinTransitionThreadCurrent) { + assert false : "Joins not supported"; + } + + return getInstances(edge.getPrecedingProcedure()).stream() + .map(t -> new Triple<>(Map.of(t, edge.getSource()), Map.of(t, edge.getTarget()), t)) + .collect(Collectors.toList()); + } + + private List> getErrorLocations() { + return mIcfg.getProcedureErrorNodes().entrySet().stream() + .flatMap(e -> e.getValue().stream().map(l -> new Pair<>(e.getKey(), l))) + .flatMap(e -> mInstances.stream().filter(i -> i.getTemplateName().equals(e.getKey())) + .> map(i -> new Pair<>(i, e.getValue()))) + .collect(Collectors.toList()); + } + + // Horn clause generation + // ----------------------------------------------------------------------------------------------------------------- + /** * Builds the initial clause that encodes the precondition. By default, this method only fixes the initial location * of the threads. */ - protected HornClauseBuilder buildInitialClause(final Map initialLocations) { + protected HornClauseBuilder buildInitialClause() { final var clause = createBuilder(mInvariantPredicate, "initial clause"); // add location constraints + final var initialLocs = getInitialLocations(); for (final var instance : mInstances) { // If instance does not have an initial location, a constraint for mBottomLocation is added. - addOutLocationConstraint(clause, instance, initialLocations.get(instance)); + addOutLocationConstraint(clause, instance, initialLocs.get(instance)); } return clause; @@ -340,6 +422,10 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition // Auxiliary methods // ----------------------------------------------------------------------------------------------------------------- + protected Map getInitialLocations() { + return mPrefs.concurrencyMode().getInitialLocations(mIcfg, mInstances); + } + protected void addInLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, final IcfgLocation location) { final var locTerm = From dc6408f8238dc0132f60886eb7df48b3657ff91d Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 18 Apr 2023 23:27:58 +0200 Subject: [PATCH 018/124] remove obsolete code --- .../icfgtochc/concurrent/HcGlobalVar.java | 1 - .../icfgtochc/concurrent/HcLocalVar.java | 5 +- .../icfgtochc/concurrent/HcLocationVar.java | 3 +- .../icfgtochc/concurrent/HcSleepVar.java | 3 +- .../icfgtochc/concurrent/HcThreadIdVar.java | 3 +- .../concurrent/HornClauseBuilder.java | 1 - .../concurrent/IHcReplacementVar.java | 33 + .../concurrent/IHcThreadSpecificVar.java | 12 - .../concurrent/IcfgToChcConcurrent.java | 759 ------------------ .../icfgtochc/concurrent/PredicateInfo.java | 1 - .../icfgtochc/concurrent/ThreadInstance.java | 2 +- .../ThreadModularHornClauseProvider.java | 5 +- 12 files changed, 42 insertions(+), 786 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java index f2646521cb2..ae84542e662 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java @@ -4,7 +4,6 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; /** * diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java index 67b67e4e849..092195d5358 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java @@ -14,9 +14,10 @@ public class HcLocalVar implements IHcThreadSpecificVar { private final IProgramVar mVariable; private final ThreadInstance mInstance; - public HcLocalVar(final IProgramVar variable, final int instanceNumber) { + public HcLocalVar(final IProgramVar variable, final ThreadInstance instance) { + assert variable.getProcedure().equals(instance.getTemplateName()); mVariable = variable; - mInstance = new ThreadInstance(mVariable.getProcedure(), instanceNumber); + mInstance = instance; } public IProgramVar getVariable() { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java index f1fe01879c0..c6bbdb71d99 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java @@ -30,8 +30,7 @@ public Sort getSort() { @Override public String toString() { - return "loc_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" - + (mInstance.getInstanceNumber() + 1); + return "loc_" + mInstance; } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 65ec8a70148..0247f66f732 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -51,8 +51,7 @@ public ThreadInstance getThreadInstance() { @Override public String toString() { - return "sleep_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" - + (mInstance.getInstanceNumber() + 1); + return "sleep_" + mInstance; } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java index fa8c35b2296..f05240c07aa 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java @@ -54,8 +54,7 @@ public ThreadInstance getThreadInstance() { @Override public String toString() { - return "id_" + IcfgToChcConcurrentUtils.getReadableString(mInstance.getTemplateName()) + "_" - + (mInstance.getInstanceNumber() + 1); + return "id_" + mInstance; } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 0fe8da638f0..b6d8786d824 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -47,7 +47,6 @@ import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; public class HornClauseBuilder { private final ManagedScript mManagedScript; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java new file mode 100644 index 00000000000..33a3033da31 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2023 Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import de.uni_freiburg.informatik.ultimate.logic.Sort; + +public interface IHcReplacementVar { + Sort getSort(); +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java index 8f537d5efcb..389f62066ef 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java @@ -26,18 +26,6 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; - public interface IHcThreadSpecificVar extends IHcReplacementVar { ThreadInstance getThreadInstance(); - - @Deprecated - default String getThreadTemplateName() { - return getThreadInstance().getTemplateName(); - } - - @Deprecated - default int getInstanceIndex() { - return getThreadInstance().getInstanceNumber(); - } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java deleted file mode 100644 index f98ead848fb..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrent.java +++ /dev/null @@ -1,759 +0,0 @@ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Objects; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; - -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcBodyVar; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcHeadVar; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcVar; -import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormula; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.logic.Term; -import de.uni_freiburg.informatik.ultimate.logic.TermVariable; -import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; - -/** - * Class to create horn-clauses for given edges to create thread-modular proofs. - * - * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * - */ -public class IcfgToChcConcurrent { - private static final String FUNCTION_NAME = "Inv"; - private static final int INTERFERING_INSTANCE_ID = -1; - - private final ManagedScript mManagedScript; - - // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this - // integer as value iff control is in the given location - private final NestedMap2 mLocationIndices = new NestedMap2<>(); - - // maps each thread template (identified by procedure name) to the number of instances - private final Map mNumberOfThreads; - - // used as location for threads that are not currently running - private final Term mBottomLocation; - - private final HcPredicateSymbol mPredicate; - private final HcSymbolTable mHcSymbolTable; - - // list of "head vars" (?), in the order as given to the CHC predicate - // these variables are always used in the head of any clause generated by this class - private final List mDefaultHeadVars; - - private final Map mSleepVars = new HashMap<>(); - private final Map mLocationsVars = new HashMap<>(); - private final Map mIdVars = new HashMap<>(); - - private final Map> mThreadLocations; - - /** - * maps a number i to the variable used for the i-th argument of the CHC predicate - */ - private final BidirectionalMap mPositions2Vars = new BidirectionalMap<>(); - - private final IIndependenceRelation> mIndependence; - - /** - * - * @param numberOfThreads - * Maps thread names to the number of instances to include in the Horn clause system - * @param managedScript - * @param cfgSmtToolkit - * @param hcSymbolTable - * @param variableFilter - * - */ - public IcfgToChcConcurrent(final Map numberOfThreads, final ManagedScript managedScript, - final CfgSmtToolkit cfgSmtToolkit, final HcSymbolTable hcSymbolTable, - final Predicate variableFilter, final Map> threadLocations, - final IIndependenceRelation> independence) { - final IIcfgSymbolTable symbolTable = cfgSmtToolkit.getSymbolTable(); - mHcSymbolTable = hcSymbolTable; - mManagedScript = managedScript; - final List globalVariables = - symbolTable.getGlobals().stream().filter(variableFilter).collect(Collectors.toList()); - mNumberOfThreads = new LinkedHashMap<>(numberOfThreads); - mBottomLocation = numeral(-1); - mThreadLocations = threadLocations; - mIndependence = independence; - - final Map> localVariables = new HashMap<>(); - for (final String proc : mNumberOfThreads.keySet()) { - localVariables.put(proc, - symbolTable.getLocals(proc).stream().filter(variableFilter).collect(Collectors.toList())); - } - initializeDefaultVars(globalVariables, localVariables); - - final List sorts = IntStream.range(0, mPositions2Vars.size()) - .mapToObj(x -> mPositions2Vars.get(x).getSort()).collect(Collectors.toList()); - mPredicate = hcSymbolTable.getOrConstructHornClausePredicateSymbol(FUNCTION_NAME, sorts); - - mDefaultHeadVars = IntStream.range(0, mPositions2Vars.size()) - .mapToObj(x -> constructHeadVar(mPositions2Vars.get(x), x)).collect(Collectors.toList()); - } - - private HcHeadVar constructHeadVar(final IHcReplacementVar rv, final int index) { - return mHcSymbolTable.getOrConstructHeadVar(mPredicate, index, rv.getSort(), rv); - } - - private void addVariable(final IHcReplacementVar variable) { - mPositions2Vars.put(mPositions2Vars.size(), variable); - } - - private void initializeDefaultVars(final Collection globalVariables, - final Map> localVariables) { - for (final IProgramVar v : globalVariables) { - addVariable(new HcGlobalVar(v)); - } - for (final var instance : getInstances()) { - // thread ID - final var id = new HcThreadIdVar(instance, getScript()); - mIdVars.put(instance, id); - addVariable(id); - - // Location - final var loc = new HcLocationVar(instance, getIntSort()); - mLocationsVars.put(instance, loc); - addVariable(loc); - - // sleep set - final var sleep = new HcSleepVar(instance, getBoolSort()); - mSleepVars.put(instance, sleep); - addVariable(sleep); - - final List localVars = localVariables.get(instance.getTemplateName()); - for (final IProgramVar v : localVars) { - addVariable(new HcLocalVar(v, instance.getInstanceNumber())); - } - } - } - - private Sort getIntSort() { - return SmtSortUtils.getIntSort(getScript()); - } - - private Sort getBoolSort() { - return SmtSortUtils.getBoolSort(getScript()); - } - - private List getDefaultArgs() { - return mDefaultHeadVars.stream().map(HcVar::getTerm).collect(Collectors.toList()); - } - - private Term numeral(final long n) { - return getScript().numeral(BigInteger.valueOf(n)); - } - - private Script getScript() { - return mManagedScript.getScript(); - } - - private Term getLocIndexTerm(final IcfgLocation loc, final String proc) { - Integer index = mLocationIndices.get(proc, loc); - if (index == null) { - final Map otherIndices = mLocationIndices.get(proc); - index = otherIndices == null ? 0 : otherIndices.size(); - mLocationIndices.put(proc, loc, index); - } - return numeral(index); - } - - private Collection getInstances(final String template) { - final var result = new ArrayList(); - for (int i = 0; i < mNumberOfThreads.get(template); i++) { - result.add(new ThreadInstance(template, i)); - } - return result; - } - - private List getInstances() { - final var result = new ArrayList(); - for (final Entry entry : mNumberOfThreads.entrySet()) { - for (int i = 0; i < entry.getValue(); i++) { - result.add(new ThreadInstance(entry.getKey(), i)); - } - } - return result; - } - - // pc_0 = l_0 -> Inv(pc_0, ...) - public HornClause getInitialClause(final Collection initialLocations) { - final Map locationMap = new HashMap<>(); - for (final var instance : getInstances()) { - locationMap.put(instance, mBottomLocation); - } - for (final IcfgLocation loc : initialLocations) { - final String proc = loc.getProcedure(); - for (int i = 0; i < mNumberOfThreads.get(proc); i++) { - locationMap.put(new ThreadInstance(proc, i), getLocIndexTerm(loc, proc)); - } - } - final var locConstraint = getConstraintFromLocationMap(locationMap); - - final var idConstraints = new ArrayList(); - // final var instances = mNumberOfThreads.entrySet().stream() - // .flatMap(e -> IntStream.range(0, e.getValue()).mapToObj(i -> new Pair<>(e.getKey(), i))) - // .collect(Collectors.toList()); - // for (int i = 0; i < instances.size(); ++i) { - // final var first = instances.get(i); - // final var firstIndex = - // mPositions2Vars.inverse().get(new HcThreadIdVar(getScript(), first.getKey(), first.getValue())); - // final var firstId = mDefaultHeadVars.get(firstIndex); - // - // for (int j = i + 1; j < instances.size(); ++j) { - // final var second = instances.get(j); - // final var secondIndex = mPositions2Vars.inverse() - // .get(new HcThreadIdVar(getScript(), second.getKey(), second.getValue())); - // final var secondId = mDefaultHeadVars.get(secondIndex); - // - // idConstraints.add(SmtUtils.distinct(getScript(), firstId.getTerm(), secondId.getTerm())); - // } - // } - - // sleep set initially empty - final var sleepConstraints = mSleepVars.values().stream() - .map(sv -> SmtUtils.binaryEquality(getScript(), - mDefaultHeadVars.get(mPositions2Vars.inverse().get(sv)).getTerm(), numeral(0))) - .collect(Collectors.toList()); - - return constructHornClause(SmtUtils.and(getScript(), locConstraint, SmtUtils.and(getScript(), sleepConstraints), - SmtUtils.and(getScript(), idConstraints)), List.of(), Set.of()); - } - - /** - * Constructs a Horn clause with a given body and the default head. - * - * @param constraint - * The SMT constraint in the clause body - * @param bodyArguments - * Each list of terms is used as arguments for an invocation of {@link #mPredicate} in the body - * @param bodyVars - * Variables used in the bodyArguments. These will be universally quanmBodyVariablestified in the clause. - * @return A Horn clause with a body built from the given arguments, and a head consisting of an {@link #mPredicate} - * invocation with the default variables ({@link #mDefaultHeadVars}). - */ - private HornClause constructHornClause(final Term constraint, final List> bodyArguments, - final Set bodyVars) { - return new HornClause(mManagedScript, mHcSymbolTable, constraint, mPredicate, mDefaultHeadVars, - Collections.nCopies(bodyArguments.size(), mPredicate), bodyArguments, bodyVars); - } - - /** - * Constructs a constraint that specifies control locations. - * - * @param locationMap - * A map from thread template (i.e. procedure name) and instance number to a term representing the - * respective location. - * @return A conjunction of equalities between the default variables for control locations - * ({@link #mDefaultHeadVars}) and the locations specified by the map - */ - private Term getConstraintFromLocationMap(final Map locationMap) { - final List constraints = new ArrayList<>(); - for (final var pair : locationMap.entrySet()) { - final var constraint = getLocationConstraint(pair.getKey(), pair.getValue()); - constraints.add(constraint); - } - return SmtUtils.and(getScript(), constraints); - } - - /** - * Constructs a constraint that specifies a single control location. - * - * @return Equality between the default variable for the given thread's control location ({@link #mDefaultHeadVars}) - * and the given location term - */ - private Term getLocationConstraint(final ThreadInstance threadInstance, final Term location) { - final HcLocationVar locVar = new HcLocationVar(threadInstance, getIntSort()); - final int index = mPositions2Vars.inverse().get(locVar); - final Term term = mDefaultHeadVars.get(index).getTerm(); - return SmtUtils.binaryEquality(getScript(), term, location); - } - - // list of clauses of the form - // Inv(..., pc_i, ...) /\ pc_i = l_err -> false - public Collection getSafetyClauses(final Collection errorLocations) { - final List result = new ArrayList<>(); - final Set vars = new HashSet<>(mDefaultHeadVars); - final List bodyArgs = getDefaultArgs(); - for (final IcfgLocation loc : errorLocations) { - final String proc = loc.getProcedure(); - for (final var instance : getInstances(proc)) { - final Term constraint = getLocationConstraint(instance, getLocIndexTerm(loc, proc)); - result.add(new HornClause(mManagedScript, mHcSymbolTable, constraint, List.of(mPredicate), - List.of(bodyArgs), vars)); - } - } - return result; - } - - /** - * - * @param procs - * @return - */ - private List> getCartesianProductOfIndices(final Collection procs) { - List> result = List.of(Map.of()); - for (final String p : procs) { - final List> newResult = new ArrayList<>(); - for (int i = 0; i < mNumberOfThreads.get(p); i++) { - for (final Map map : result) { - final Map newMap = new HashMap<>(map); - newMap.put(p, i); - newResult.add(newMap); - } - } - result = newResult; - } - return result; - } - - /** - * - * @param locations - * @param indexMap - * @return - */ - private NestedMap2 getLocationMap(final Collection locations, - final Map indexMap) { - final NestedMap2 locMap = new NestedMap2<>(); - for (final IcfgLocation loc : locations) { - final String proc = loc.getProcedure(); - locMap.put(proc, indexMap.get(proc), getLocIndexTerm(loc, proc)); - } - return locMap; - } - - /** - * - * @param pre - * @param edge - * @param post - * @return - */ - public Collection getInductivityClauses(final List pre, final IIcfgTransition edge, - final List post) { - final String activeProcedure = edge.getPrecedingProcedure(); - - final List result = new ArrayList<>(); - final Set containedProcs = - Stream.concat(pre.stream(), post.stream()).map(IcfgLocation::getProcedure).collect(Collectors.toSet()); - for (final Map indexMap : getCartesianProductOfIndices(containedProcs)) { - final NestedMap2 locMapIn = getLocationMap(pre, indexMap); - final NestedMap2 locMapOut = getLocationMap(post, indexMap); - - final TransFormula transformula = edge.getTransformula(); - final Map substitution = new HashMap<>(); - final List constraints = new ArrayList<>(); - final List bodyArgs = getDefaultArgs(); - final Set bodyVars = new HashSet<>(); - - for (final var entry : mPositions2Vars.entrySet()) { - final int index = entry.getKey(); - final IHcReplacementVar rv = entry.getValue(); - IProgramVar pv = null; - if (rv instanceof HcLocalVar) { - final HcLocalVar lv = (HcLocalVar) rv; - if (!Objects.equals(indexMap.get(lv.getThreadTemplateName()), lv.getInstanceIndex())) { - continue; - } - pv = lv.getVariable(); - } else if (rv instanceof HcGlobalVar) { - final HcGlobalVar gv = (HcGlobalVar) rv; - pv = gv.getVariable(); - } else if (rv instanceof HcLocationVar) { - final HcLocationVar lv = (HcLocationVar) rv; - final String procedure = lv.getThreadTemplateName(); - final int instanceIndex = lv.getInstanceIndex(); - Term locIn = locMapIn.get(procedure, instanceIndex); - Term locOut = locMapOut.get(procedure, instanceIndex); - if (locIn == null && locOut == null) { - continue; - } - if (locIn == null) { - locIn = mBottomLocation; - } - if (locOut == null) { - locOut = mBottomLocation; - } - constraints - .add(SmtUtils.binaryEquality(getScript(), mDefaultHeadVars.get(index).getTerm(), locOut)); - if (!locIn.equals(locOut)) { - bodyArgs.set(index, locIn); - } - - // rv does not appear in transition formula, so skip the rest of the loop - continue; - } else if (rv instanceof HcSleepVar) { - final var sv = (HcSleepVar) rv; - final var activeInstanceIndex = indexMap.get(sv.getThreadTemplateName()); - if (Objects.equals(sv.getInstanceIndex(), activeInstanceIndex)) { - // this is the sleep variable for the active thread - final var bv = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); - bodyVars.add(bv); - bodyArgs.set(index, bv.getTerm()); - - // ensure that the active thread is not sleeping - constraints.add(SmtUtils.binaryEquality(getScript(), bv.getTerm(), numeral(0))); - } else { - final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); - bodyVars.add(oldSleep); - bodyArgs.set(index, oldSleep.getTerm()); - final var newSleep = mDefaultHeadVars.get(index).getTerm(); - - final var hcLoc = new HcLocationVar(sv.getThreadInstance(), getIntSort()); - final int locIndex = mPositions2Vars.inverse().get(hcLoc); - final var locVar = mDefaultHeadVars.get(locIndex); - - final var currentId = mDefaultHeadVars.get(mPositions2Vars.inverse().get(new HcThreadIdVar( - new ThreadInstance(activeProcedure, activeInstanceIndex), getScript()))); - final var otherId = mDefaultHeadVars.get( - mPositions2Vars.inverse().get(new HcThreadIdVar(sv.getThreadInstance(), getScript()))); - - // update sleep variable depending on commutativity and thread ID ordering - final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); - constraints - .add(SmtUtils.binaryBooleanEquality(getScript(), - SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), - SmtUtils.or(getScript(), SmtUtils.and(getScript(), - SmtUtils.greater(getScript(), otherId.getTerm(), currentId.getTerm()), - SmtUtils.binaryEquality(getScript(), oldSleep.getTerm(), numeral(0))), - nonCommConstr))); - } - // else if ((activeInstanceIndex != null && sv.getInstanceIndex() < activeInstanceIndex) - // || (activeInstanceIndex == null - // && sv.getThreadTemplateName().compareTo(activeProcedure) < 0)) { - // final var newSleep = mDefaultHeadVars.get(index).getTerm(); - // - // final var locVar = mLocationsVars.get(sv.getThreadTemplateName(), sv.getInstanceIndex()); - // final var locVarIndex = mPositions2Vars.inverse().get(locVar); - // final var locVar2 = - // mHcSymbolTable.getOrConstructBodyVar(mPredicate, locVarIndex, locVar.getSort(), locVar); - // bodyVars.add(locVar2); - // bodyArgs.set(locVarIndex, locVar2.getTerm()); - // - // // set newSleep to true/false depending on commutativity - // final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar2.getTerm(), edge); - // constraints.add(SmtUtils.binaryBooleanEquality(getScript(), - // SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), nonCommConstr)); - // } else { - // assert (activeInstanceIndex != null && sv.getInstanceIndex() > activeInstanceIndex) - // || (activeInstanceIndex == null - // && sv.getThreadTemplateName().compareTo(activeProcedure) > 0); - // - // final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); - // bodyVars.add(oldSleep); - // bodyArgs.set(index, oldSleep.getTerm()); - // final var newSleep = mDefaultHeadVars.get(index).getTerm(); - // - // final var locVar = mLocationsVars.get(sv.getThreadTemplateName(), sv.getInstanceIndex()); - // final var locVarIndex = mPositions2Vars.inverse().get(locVar); - // final var locVar2 = - // mHcSymbolTable.getOrConstructBodyVar(mPredicate, locVarIndex, locVar.getSort(), locVar); - // bodyVars.add(locVar2); - // bodyArgs.set(locVarIndex, locVar2.getTerm()); - // - // // set newSleep to old/false depending on commutativity - // final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar2.getTerm(), edge); - // constraints.add(SmtUtils.ite(getScript(), nonCommConstr, - // SmtUtils.binaryEquality(getScript(), newSleep, numeral(0)), - // SmtUtils.binaryEquality(getScript(), newSleep, oldSleep.getTerm()))); - // } - continue; - } else if (rv instanceof HcThreadIdVar) { - // nothing to do here: the default argument in the body is already the headVar - // this is correct, because the thread ID never changes - continue; - } else { - throw new UnsupportedOperationException("Unknown kind of variable: " + rv); - } - - assert pv != null; - final TermVariable inVar = transformula.getInVars().get(pv); - final TermVariable outVar = transformula.getOutVars().get(pv); - substitution.put(outVar, mDefaultHeadVars.get(index).getTerm()); - if (!Objects.equals(inVar, outVar)) { - final HcBodyVar bv = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, pv); - final Term term = bv.getTerm(); - bodyArgs.set(index, term); - substitution.put(inVar, term); - bodyVars.add(bv); - } - } - - // add ID constraints - final var instances = getInstances(); - for (int i = 0; i < instances.size(); ++i) { - final var first = instances.get(i); - final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); - final var firstId = mDefaultHeadVars.get(firstIndex); - - for (int j = i + 1; j < instances.size(); ++j) { - final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); - final var secondId = mDefaultHeadVars.get(secondIndex); - - constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); - } - } - - // Replace all other variables with aux-vars - final Term formula = transformula.getFormula(); - for (final TermVariable v : formula.getFreeVars()) { - if (substitution.containsKey(v)) { - continue; - } - // TODO: Using the number of bodyVars as index is a hack! - final HcBodyVar auxVar = - mHcSymbolTable.getOrConstructBodyVar(mPredicate, bodyVars.size(), v.getSort(), v); - substitution.put(v, auxVar.getTerm()); - bodyVars.add(auxVar); - } - constraints.add(Substitution.apply(mManagedScript, substitution, formula)); - result.add(constructHornClause(SmtUtils.and(getScript(), constraints), List.of(bodyArgs), bodyVars)); - } - return result; - } - - private Term getNonCommutativityConstraint(final HcSleepVar sv, final Term locVar, - final IIcfgTransition currentEdge) { - - final var nonCommLocations = new HashSet(); - for (final var loc : mThreadLocations.get(sv.getThreadTemplateName())) { - if (loc.getOutgoingEdges().stream() - .anyMatch(edge -> mIndependence.isIndependent(null, edge, currentEdge) != Dependence.INDEPENDENT)) { - nonCommLocations.add(getLocIndexTerm(loc, sv.getThreadTemplateName())); - } - } - - nonCommLocations.stream().map(loc -> SmtUtils.binaryEquality(getScript(), locVar, loc)) - .collect(Collectors.toList()); - return SmtUtils.and(getScript(), nonCommLocations.stream() - .map(loc -> SmtUtils.binaryEquality(getScript(), locVar, loc)).collect(Collectors.toList())); - } - - public Collection getInductivityClauses(final IIcfgTransition edge) { - return getInductivityClauses(List.of(edge.getSource()), edge, List.of(edge.getTarget())); - } - - public HornClause getIdUniquenessClause() { - final var bodyArgs = getDefaultArgs(); - final var constraints = new ArrayList(); - - final var instances = getInstances(); - for (int i = 0; i < instances.size(); ++i) { - final var first = instances.get(i); - final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); - final var firstId = bodyArgs.get(firstIndex); - - for (int j = i + 1; j < instances.size(); ++j) { - final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); - final var secondId = bodyArgs.get(secondIndex); - - constraints.add(SmtUtils.binaryEquality(getScript(), firstId, secondId)); - } - } - - return new HornClause(mManagedScript, mHcSymbolTable, SmtUtils.or(getScript(), constraints), - List.of(mPredicate), List.of(bodyArgs), Set.copyOf(mDefaultHeadVars)); - } - - public HornClause getNonInterferenceClause(final IIcfgTransition edge) { - final String procedure = edge.getPrecedingProcedure(); - final var interferingThread = new ThreadInstance(procedure, INTERFERING_INSTANCE_ID); - - final int n = mNumberOfThreads.get(procedure); - final List> bodyArguments = new ArrayList<>(); - for (int i = 0; i <= n; i++) { - bodyArguments.add(getDefaultArgs()); - } - final TransFormula transformula = edge.getTransformula(); - final Map substitution = new HashMap<>(); - final Set bodyVars = new HashSet<>(); - final var constraints = new ArrayList(); - for (final var entry : mPositions2Vars.entrySet()) { - final int index = entry.getKey(); - final IHcReplacementVar rv = entry.getValue(); - if (rv instanceof HcLocalVar) { - final HcLocalVar lv = (HcLocalVar) rv; - if (lv.getThreadTemplateName().equals(procedure)) { - final IProgramVar pv = lv.getVariable(); - final TermVariable inVar = transformula.getInVars().get(pv); - final TermVariable outVar = transformula.getOutVars().get(pv); - if (inVar != null) { - final HcBodyVar bodyVar = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, pv); - bodyVars.add(bodyVar); - final Term bodyVarTerm = bodyVar.getTerm(); - substitution.put(inVar, bodyVarTerm); - for (int i = 0; i < n; i++) { - final int newIndex = mPositions2Vars.inverse().get(new HcLocalVar(pv, i)); - bodyArguments.get(i + 1).set(newIndex, bodyVarTerm); - } - } - if (outVar != null && !outVar.equals(inVar)) { - // TODO: Should this be a HcBodyAuxVar instead? => ChcToBoogie crashes then... - final HcBodyVar auxVar = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, pv); - substitution.put(outVar, auxVar.getTerm()); - bodyVars.add(auxVar); - } - } - } else if (rv instanceof HcGlobalVar) { - final IProgramVar pv = ((HcGlobalVar) rv).getVariable(); - final TermVariable inVar = transformula.getInVars().get(pv); - final TermVariable outVar = transformula.getOutVars().get(pv); - substitution.put(outVar, mDefaultHeadVars.get(index).getTerm()); - if (!Objects.equals(inVar, outVar)) { - final HcBodyVar bv = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, pv); - final Term term = bv.getTerm(); - for (int i = 0; i <= n; i++) { - bodyArguments.get(i).set(index, term); - } - substitution.put(inVar, term); - bodyVars.add(bv); - } - } else if (rv instanceof HcLocationVar) { - final HcLocationVar lv = (HcLocationVar) rv; - if (lv.getThreadTemplateName().equals(procedure)) { - final Term loc = getLocIndexTerm(edge.getSource(), procedure); - for (int i = 0; i < n; i++) { - final int newIndex = mPositions2Vars.inverse() - .get(new HcLocationVar(new ThreadInstance(procedure, i), getIntSort())); - bodyArguments.get(i + 1).set(newIndex, loc); - } - } - } else if (rv instanceof HcSleepVar) { - final var sv = (HcSleepVar) rv; - final var oldSleep = mHcSymbolTable.getOrConstructBodyVar(mPredicate, index, sv.getSort(), sv); - bodyVars.add(oldSleep); - - // insert the variable in each body clause (in one, it may be replaced below by the interfering thread) - for (int i = 0; i <= n; ++i) { - bodyArguments.get(i).set(index, oldSleep.getTerm()); - } - - final var newSleep = mDefaultHeadVars.get(index); - - final var hcLoc = new HcLocationVar(sv.getThreadInstance(), getIntSort()); - final int locIndex = mPositions2Vars.inverse().get(hcLoc); - final var locVar = mDefaultHeadVars.get(locIndex); - - final var currentId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(interferingThread, getScript())); - bodyVars.add(currentId); - final var otherId = mDefaultHeadVars - .get(mPositions2Vars.inverse().get(new HcThreadIdVar(sv.getThreadInstance(), getScript()))); - - // update sleep variable depending on commutativity and thread ID ordering - final Term nonCommConstr = getNonCommutativityConstraint(sv, locVar.getTerm(), edge); - constraints.add(SmtUtils.binaryBooleanEquality(getScript(), - SmtUtils.binaryEquality(getScript(), newSleep.getTerm(), numeral(0)), - SmtUtils.or(getScript(), - SmtUtils.and(getScript(), - SmtUtils.greater(getScript(), otherId.getTerm(), currentId.getTerm()), - SmtUtils.binaryEquality(getScript(), oldSleep.getTerm(), numeral(0))), - nonCommConstr))); - - // special case: add the constraint that the interfering thread does not sleep - if (sv.getThreadTemplateName().equals(procedure)) { - final var bodyVar = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, sv.getSort(), sv); - bodyVars.add(bodyVar); - - // for each non-interference premise, insert the variable in the index for the interfering thread - for (int i = 0; i < n; ++i) { - final int newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(new ThreadInstance(sv.getThreadTemplateName(), i), getBoolSort())); - bodyArguments.get(i + 1).set(newIndex, bodyVar.getTerm()); - } - - // add constraint ensuring that the interfering thread is not sleeping - constraints.add(SmtUtils.binaryEquality(getScript(), bodyVar.getTerm(), numeral(0))); - } - continue; - } else if (rv instanceof HcThreadIdVar) { - final var iv = (HcThreadIdVar) rv; - if (iv.getThreadTemplateName().equals(procedure)) { - final var id = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(interferingThread, getScript())); - bodyVars.add(id); - for (int i = 0; i < n; ++i) { - final var newIndex = mPositions2Vars.inverse() - .get(new HcSleepVar(new ThreadInstance(iv.getThreadTemplateName(), i), getBoolSort())); - bodyArguments.get(i + 1).set(newIndex, id.getTerm()); - } - } - } else { - throw new UnsupportedOperationException("Unknown kind of variable: " + rv); - } - } - - // add ID constraints - final var instances = getInstances(); - final var interferingId = mHcSymbolTable.getOrConstructBodyVar(mPredicate, -1, getIntSort(), - new HcThreadIdVar(interferingThread, getScript())); - assert bodyVars.contains(interferingId); - for (int i = 0; i < instances.size(); ++i) { - final var first = instances.get(i); - final var firstIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(first, getScript())); - final var firstId = mDefaultHeadVars.get(firstIndex); - - for (int j = i + 1; j < instances.size(); ++j) { - final var second = instances.get(j); - final var secondIndex = mPositions2Vars.inverse().get(new HcThreadIdVar(second, getScript())); - final var secondId = mDefaultHeadVars.get(secondIndex); - - constraints.add(SmtUtils.less(getScript(), firstId.getTerm(), secondId.getTerm())); - } - - constraints.add(SmtUtils.distinct(getScript(), interferingId.getTerm(), firstId.getTerm())); - } - - // Replace all other variables with aux-vars - final Term formula = transformula.getFormula(); - for (final TermVariable v : formula.getFreeVars()) { - if (substitution.containsKey(v)) { - continue; - } - // TODO: Using the number of bodyVars as index is a hack! - final HcBodyVar auxVar = mHcSymbolTable.getOrConstructBodyVar(mPredicate, bodyVars.size(), v.getSort(), v); - substitution.put(v, auxVar.getTerm()); - bodyVars.add(auxVar); - } - constraints.add(Substitution.apply(mManagedScript, substitution, transformula.getFormula())); - return constructHornClause(SmtUtils.and(getScript(), constraints), bodyArguments, bodyVars); - } - - public interface IHcReplacementVar { - Sort getSort(); - } -} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java index f399c748159..4d13dbdf187 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java @@ -29,7 +29,6 @@ import java.util.Objects; import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; public class PredicateInfo { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java index 57f69b21bc3..70df1092830 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java @@ -47,7 +47,7 @@ public int getInstanceNumber() { @Override public String toString() { - return mTemplateName + "_" + mInstanceNumber; + return IcfgToChcConcurrentUtils.getReadableString(mTemplateName) + "_" + (mInstanceNumber + 1); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index f58d4952fff..df5ecaad805 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -56,7 +56,6 @@ import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgToChcConcurrent.IHcReplacementVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; @@ -208,7 +207,7 @@ protected List createThreadSpecificVars(final ThreadInstan final List localVars = mCfgSymbolTable.getLocals(instance.getTemplateName()).stream() .filter(mVariableFilter).collect(Collectors.toList()); for (final IProgramVar pv : localVars) { - final var local = new HcLocalVar(pv, instance.getInstanceNumber()); + final var local = new HcLocalVar(pv, instance); mLocalVars.put(instance, pv, local); result.add(local); } @@ -507,6 +506,6 @@ protected ThreadInstance getInterferingThread(final IIcfgTransition transitio private Stream getInterferingLocals(final ThreadInstance interferingThread) { return mCfgSymbolTable.getLocals(interferingThread.getTemplateName()).stream().filter(mVariableFilter) - .map(pv -> new HcLocalVar(pv, INTERFERING_INSTANCE_ID)); + .map(pv -> new HcLocalVar(pv, interferingThread)); } } From f510f23faf5ca696ee45b5e7478ed622799a9033 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 18 Apr 2023 23:28:47 +0200 Subject: [PATCH 019/124] add missing license header --- .../concurrent/IcfgToChcConcurrentUtils.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrentUtils.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrentUtils.java index c4e95a4f26f..fef1c0f2a6d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrentUtils.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IcfgToChcConcurrentUtils.java @@ -1,3 +1,29 @@ +/* + * Copyright (C) 2023 Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; /** From 247528eb15534a6bd34ea634fbddb6b05e3c75a6 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 19 Apr 2023 11:31:39 +0200 Subject: [PATCH 020/124] implement support for pre-/postconditions For parametric programs, we can now generate CHC systems that encode correctness wrt a pre- / postcondition pair. The precondition should be annotated as a "free requires" on the thread template, Similarly, the postcondition should be annotated as a "free ensures". --- .../plugins/icfgtochc/IcfgToChcObserver.java | 6 +- .../concurrent/HcThreadCounterVar.java | 96 +++++++++ ...eepSetThreadModularHornClauseProvider.java | 12 +- .../ThreadModularHornClauseProvider.java | 196 ++++++++++++++++-- 4 files changed, 280 insertions(+), 30 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 7b1e785da27..fb54afea2a6 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -177,10 +177,10 @@ private Collection getHornClauses(IIcfg icfg, final Ma if (mPrefs.useSleepSets()) { final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, true); - return new SleepSetThreadModularHornClauseProvider(mgdScript, icfg, hcSymbolTable, independence, mPrefs) - .getClauses(); + return new SleepSetThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, + independence, mPrefs).getClauses(); } - return new ThreadModularHornClauseProvider(mgdScript, icfg, hcSymbolTable, mPrefs).getClauses(); + return new ThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, mPrefs).getClauses(); } return new ChcProviderForCalls(mgdScript, hcSymbolTable).getHornClauses(icfg); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java new file mode 100644 index 00000000000..b668c6e75a0 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Objects; + +import de.uni_freiburg.informatik.ultimate.logic.Sort; + +/** + * A variable that counts the number of started resp. of terminated threads. These variables are used for a + * thread-modular encoding of postconditions. + * + * The thread-modular encoding of postconditions works as follows: + *
    + *
  1. The number of started threads is incremented each time one of the initially running threads takes its first + * step.
  2. + *
  3. The number of terminated threads is incremented each time one of the initially running threads terminates.
  4. + *
  5. If an initially running thread has terminated, and the numbers of started and terminated threads are equal, then + * the postcondition must hold.
  6. + *
+ * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + */ +public class HcThreadCounterVar implements IHcReplacementVar { + + // An instance either represents the number of started threads (if this boolean is true) or of terminated threads + private final boolean mIsStarted; + private final Sort mSort; + + public HcThreadCounterVar(final boolean isStarted, final Sort sort) { + mIsStarted = isStarted; + mSort = sort; + } + + @Override + public Sort getSort() { + return mSort; + } + + public boolean isStarted() { + return mIsStarted; + } + + public boolean isTerminated() { + return !mIsStarted; + } + + @Override + public String toString() { + return mIsStarted ? "~started" : "~terminated"; + } + + @Override + public int hashCode() { + return Objects.hash(mIsStarted); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final HcThreadCounterVar other = (HcThreadCounterVar) obj; + return mIsStarted == other.mIsStarted; + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 262a26b98ab..9bd5f2cdbfb 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -35,6 +35,7 @@ import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; @@ -52,10 +53,10 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl private final Map mIdVars; private final Map mSleepVars; - public SleepSetThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, - final HcSymbolTable symbolTable, final IIndependenceRelation> independence, - final IcfgToChcPreferences prefs) { - super(mgdScript, icfg, symbolTable, prefs); + public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider services, + final ManagedScript mgdScript, final IIcfg icfg, final HcSymbolTable symbolTable, + final IIndependenceRelation> independence, final IcfgToChcPreferences prefs) { + super(services, mgdScript, icfg, symbolTable, prefs); mIndependence = independence; mThreadLocations = icfg.getProgramPoints().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); @@ -217,10 +218,11 @@ private void updateSleepNonInterference(final HornClauseBuilder clause, final II protected Term getCommutativityConstraint(final ThreadInstance instance, final Term locVar, final IIcfgTransition currentEdge) { - final var commLocations = new HashSet(); for (final var loc : mThreadLocations.get(instance.getTemplateName())) { if (loc.getOutgoingEdges().stream() + // ignore spec edges: the original edges are replaced, and the replacing transitions commute + .filter(e -> !isPreConditionSpecEdge(e) && !isPostConditionSpecEdge(e)) .allMatch(e -> mIndependence.isIndependent(null, e, currentEdge) == Dependence.INDEPENDENT)) { commLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index df5ecaad805..e83dcfd7bdd 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -40,6 +40,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; @@ -49,6 +50,9 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaBuilder; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaUtils; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.UnmodifiableTransFormula; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; @@ -57,7 +61,9 @@ import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences.SpecMode; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; +import de.uni_freiburg.informatik.ultimate.util.datastructures.DataStructureUtils; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Triple; @@ -65,6 +71,10 @@ /** * Generates Horn clauses for a thread-modular proof. * + * This class supports two modes of specification: Either we prove absence of assertion violations in all threads, or we + * prove a precondition-postcondition pair (the postcondition holds once all initially running threads have terminated). + * The specification mode is set via the preferences (passed to the constructor). + * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) * @@ -73,6 +83,7 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide private static final String FUNCTION_NAME = "Inv"; private static final int INTERFERING_INSTANCE_ID = -1; + protected final IUltimateServiceProvider mServices; protected final IIcfg mIcfg; protected final IcfgToChcPreferences mPrefs; private final IIcfgSymbolTable mCfgSymbolTable; @@ -92,19 +103,22 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide protected final PredicateInfo mInvariantPredicate; protected final Set mGlobalVars = new HashSet<>(); + protected final HcThreadCounterVar mStartedVar; + protected final HcThreadCounterVar mTerminatedVar; protected final Map> mThreadSpecificVars = new HashMap<>(); protected final Map mLocationVars = new HashMap<>(); protected final NestedMap2 mLocalVars = new NestedMap2<>(); - public ThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, - final HcSymbolTable symbolTable, final IcfgToChcPreferences prefs) { - this(mgdScript, icfg, symbolTable, x -> true, prefs); + public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final IIcfg icfg, final HcSymbolTable symbolTable, final IcfgToChcPreferences prefs) { + this(services, mgdScript, icfg, symbolTable, x -> true, prefs); } - public ThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcfg icfg, - final HcSymbolTable symbolTable, final Predicate variableFilter, + public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final IIcfg icfg, final HcSymbolTable symbolTable, final Predicate variableFilter, final IcfgToChcPreferences prefs) { super(mgdScript, symbolTable); + mServices = services; mIcfg = icfg; mPrefs = prefs; mCfgSymbolTable = mIcfg.getCfgSmtToolkit().getSymbolTable(); @@ -117,6 +131,13 @@ public ThreadModularHornClauseProvider(final ManagedScript mgdScript, final IIcf mUnboundedTemplates = threadInfo.getSecond(); mBottomLocation = numeral(-1); + if (mPrefs.specMode() == SpecMode.PRE_POST) { + mStartedVar = new HcThreadCounterVar(true, getIntSort()); + mTerminatedVar = new HcThreadCounterVar(false, getIntSort()); + } else { + mStartedVar = null; + mTerminatedVar = null; + } mInvariantPredicate = createInvariantPredicate(); } @@ -163,6 +184,13 @@ private PredicateInfo createInvariantPredicate() { */ protected List getInvariantParameters() { final var result = new ArrayList(); + + // add variables for thread-modular encoding of postconditions + if (mPrefs.specMode() == SpecMode.PRE_POST) { + result.add(mStartedVar); + result.add(mTerminatedVar); + } + result.addAll(createGlobalVars()); for (final var instance : mInstances) { final var threadSpecific = createThreadSpecificVars(instance); @@ -229,28 +257,98 @@ protected List buildAllClauses() { for (final String proc : mTemplates) { final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); while (edges.hasNext()) { - final IcfgEdge edge = edges.next(); + final IcfgEdge original = edges.next(); + + // replace spec edges by dummy transitions that do nothing (actual constraints are added later) + IcfgEdge edge; + if (isPreConditionSpecEdge(original) || isPostConditionSpecEdge(original)) { + edge = createDummyEdge(original); + } else { + edge = original; + } + + // add inductivity clauses for (final var prePost : getCartesianPrePostProduct(edge)) { final var clause = buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()); + transformSpecEdgeClause(original, clause); result.add(clause); } + // add non-interference clause if (mUnboundedTemplates.contains(proc)) { - result.add(buildNonInterferenceClause(edge)); + final var clause = buildNonInterferenceClause(edge); + transformSpecEdgeClause(original, clause); + result.add(clause); } } } - final var errorLocs = getErrorLocations(); - for (final var pair : errorLocs) { - final var safetyClause = buildSafetyClause(pair.getFirst(), pair.getSecond()); - result.add(safetyClause); + // add safety clauses + switch (mPrefs.specMode()) { + case ASSERT_VIOLATIONS: + for (final var pair : getErrorLocations()) { + final var safetyClause = buildErrorSafetyClause(pair.getFirst(), pair.getSecond()); + result.add(safetyClause); + } + break; + case PRE_POST: + for (final var thread : getInitialLocations().keySet()) { + final var safetyClause = buildPostconditionSafetyClause(thread); + result.add(safetyClause); + } + break; } return result; } + protected IcfgEdge createDummyEdge(final IcfgEdge original) { + final var tf = TransFormulaBuilder.getTrivialTransFormula(mManagedScript); + return new IcfgEdge(original.getSource(), original.getTarget(), original.getPayload()) { + @Override + public UnmodifiableTransFormula getTransformula() { + return tf; + } + }; + } + + // add actual constraints for spec edges, do nothing if not a spec edge + protected void transformSpecEdgeClause(final IcfgEdge edge, final HornClauseBuilder clause) { + if (isPreConditionSpecEdge(edge)) { + incrementThreadCounter(clause, mStartedVar); + } else if (isPostConditionSpecEdge(edge)) { + incrementThreadCounter(clause, mTerminatedVar); + } + } + + protected void incrementThreadCounter(final HornClauseBuilder clause, final HcThreadCounterVar counter) { + // add constraint counter' = counter + 1 + clause.differentBodyHeadVar(counter); + clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getHeadVar(counter).getTerm(), + SmtUtils.sum(mScript, getIntSort(), clause.getBodyVar(counter).getTerm(), numeral(1L)))); + } + + protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { + if (mPrefs.specMode() != SpecMode.PRE_POST) { + return false; + } + + final var template = edge.getPrecedingProcedure(); + final var entryLoc = mIcfg.getProcedureEntryNodes().get(template); + return edge.getSource().equals(entryLoc); + } + + protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { + if (mPrefs.specMode() != SpecMode.PRE_POST) { + return false; + } + + final var template = edge.getPrecedingProcedure(); + final var exitLoc = mIcfg.getProcedureExitNodes().get(template); + return edge.getTarget().equals(exitLoc); + } + private List, Map, ThreadInstance>> getCartesianPrePostProduct(final IcfgEdge edge) { if (edge instanceof IIcfgForkTransitionThreadCurrent) { @@ -291,19 +389,37 @@ private List> getErrorLocations() { // ----------------------------------------------------------------------------------------------------------------- /** - * Builds the initial clause that encodes the precondition. By default, this method only fixes the initial location - * of the threads. + * Builds the initial clause that encodes the precondition. */ protected HornClauseBuilder buildInitialClause() { final var clause = createBuilder(mInvariantPredicate, "initial clause"); + final var initialLocs = getInitialLocations(); // add location constraints - final var initialLocs = getInitialLocations(); for (final var instance : mInstances) { - // If instance does not have an initial location, a constraint for mBottomLocation is added. + // If an instance does not have an initial location, a constraint for mBottomLocation is added. addOutLocationConstraint(clause, instance, initialLocs.get(instance)); } + if (mPrefs.specMode() == SpecMode.PRE_POST) { + // add constraints that thread counters (for thread-modular encoding of postconditions) are initially 0 + clause.addConstraint( + SmtUtils.binaryEquality(mScript, clause.getHeadVar(mStartedVar).getTerm(), numeral(0))); + clause.addConstraint( + SmtUtils.binaryEquality(mScript, clause.getHeadVar(mTerminatedVar).getTerm(), numeral(0))); + + // add precondition constraint + final var locals = mLocalVars.values().collect(Collectors.toList()); + for (final var entry : initialLocs.entrySet()) { + // The (only) outgoing edge of the initial location should be an assumption of the precondition + final var precond = DataStructureUtils + .getOneAndOnly(entry.getValue().getOutgoingEdges(), "outgoing edge of initial location") + .getTransformula(); + assert precond.getAssignedVars().isEmpty() : "Precondition must not modify variables"; + addTransitionConstraint(clause, precond, entry.getKey(), locals); + } + } + return clause; } @@ -315,7 +431,7 @@ protected HornClauseBuilder buildInitialClause() { * @param errorLoc * The error location that shall be proven unreachable */ - protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final IcfgLocation errorLoc) { + protected HornClauseBuilder buildErrorSafetyClause(final ThreadInstance thread, final IcfgLocation errorLoc) { // create a clause with head "false" final var clause = createBuilder("safety clause for location " + errorLoc + " in thread instance " + thread); @@ -328,6 +444,40 @@ protected HornClauseBuilder buildSafetyClause(final ThreadInstance thread, final return clause; } + /** + * Builds a safety clause specifying that if a given thread exits, and the numbers of started and exited threads are + * equal, the postcondition holds. + * + * @param thread + * The thread for which the clause should be generated. This must be a thread that runs initially. + */ + protected HornClauseBuilder buildPostconditionSafetyClause(final ThreadInstance thread) { + // create a clause with head "false" + final var clause = createBuilder("safety clause for postcondition in thread instance " + thread); + + // add body clause + clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); + + // location constraints + final var exitLoc = mIcfg.getProcedureExitNodes().get(thread.getTemplateName()); + addInLocationConstraint(clause, thread, exitLoc); + + // add thread counter constraint: started == terminated + clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(mStartedVar).getTerm(), + clause.getBodyVar(mTerminatedVar).getTerm())); + + // add negated postcondition + final var postcondition = DataStructureUtils + .getOneAndOnly(exitLoc.getIncomingEdges(), "transition to exit location").getTransformula(); + assert postcondition.getAssignedVars().isEmpty() : "postcondition cannot modify variables"; + final var negated = TransFormulaUtils.negate( + TransFormulaUtils.computeGuard(postcondition, mManagedScript, mServices), mManagedScript, mServices); + final var locals = mLocalVars.values().collect(Collectors.toList()); + addTransitionConstraint(clause, negated, null, locals); + + return clause; + } + /** * Builds an inductivity clause that encodes the effect of a transition on the thread that executes it. * @@ -455,18 +605,22 @@ protected Term getLocIndexTerm(final IcfgLocation loc, final String proc) { protected void addTransitionConstraint(final HornClauseBuilder clause, final IIcfgTransition transition, final ThreadInstance updatedThread, final Collection localVariables) { - final var tf = transition.getTransformula(); + addTransitionConstraint(clause, transition.getTransformula(), updatedThread, localVariables); + } + + protected void addTransitionConstraint(final HornClauseBuilder clause, final UnmodifiableTransFormula tf, + final ThreadInstance updatedThread, final Collection localVariables) { final var substitution = new HashMap(); // deal with global variables for (final var global : mGlobalVars) { - prepareSubstitution(clause, transition, substitution, global, global.getVariable(), true); + prepareSubstitution(clause, tf, substitution, global, global.getVariable(), true); } // deal with local variables for (final HcLocalVar local : localVariables) { final var updatable = local.getThreadInstance().equals(updatedThread); - prepareSubstitution(clause, transition, substitution, local, local.getVariable(), updatable); + prepareSubstitution(clause, tf, substitution, local, local.getVariable(), updatable); } // replace all other variables with auxiliary variables @@ -480,11 +634,9 @@ protected void addTransitionConstraint(final HornClauseBuilder clause, final IIc clause.addConstraint(Substitution.apply(mManagedScript, substitution, formula)); } - private static void prepareSubstitution(final HornClauseBuilder clause, final IIcfgTransition transition, + private static void prepareSubstitution(final HornClauseBuilder clause, final UnmodifiableTransFormula tf, final Map substitution, final IHcReplacementVar rv, final IProgramVar pv, final boolean canBeUpdated) { - final var tf = transition.getTransformula(); - final TermVariable inVar = tf.getInVars().get(pv); if (inVar != null) { substitution.put(inVar, clause.getBodyVar(rv).getTerm()); From f10639ea0c64d6b543caf823fdd4c6ba069c4d6b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 20 Apr 2023 09:46:58 +0200 Subject: [PATCH 021/124] separate ability to specify preconditions from spec mode --- .../icfgtochc/concurrent/HornClauseBuilder.java | 3 ++- .../ThreadModularHornClauseProvider.java | 16 +++++++++------- .../IcfgToChcPreferenceInitializer.java | 9 ++++++++- .../preferences/IcfgToChcPreferences.java | 6 +++++- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index b6d8786d824..26adda8d550 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -87,7 +87,8 @@ public HcBodyVar getBodyVar(final IHcReplacementVar variable) { public HcHeadVar getHeadVar(final IHcReplacementVar variable) { assert mHeadPredicate != null : "Clause does not have head predicate"; - assert mHeadPredicate.hasParameter(variable); + assert mHeadPredicate.hasParameter(variable) : "Predicate " + mHeadPredicate.getPredicate() + + " does not have parameter " + variable; return mSymbolTable.getOrConstructHeadVar(variable, variable.getSort()); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index e83dcfd7bdd..b1b4a05ebb6 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -131,7 +131,7 @@ public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, mUnboundedTemplates = threadInfo.getSecond(); mBottomLocation = numeral(-1); - if (mPrefs.specMode() == SpecMode.PRE_POST) { + if (mPrefs.specMode() == SpecMode.POSTCONDITION) { mStartedVar = new HcThreadCounterVar(true, getIntSort()); mTerminatedVar = new HcThreadCounterVar(false, getIntSort()); } else { @@ -186,7 +186,7 @@ protected List getInvariantParameters() { final var result = new ArrayList(); // add variables for thread-modular encoding of postconditions - if (mPrefs.specMode() == SpecMode.PRE_POST) { + if (mPrefs.specMode() == SpecMode.POSTCONDITION) { result.add(mStartedVar); result.add(mTerminatedVar); } @@ -292,7 +292,7 @@ protected List buildAllClauses() { result.add(safetyClause); } break; - case PRE_POST: + case POSTCONDITION: for (final var thread : getInitialLocations().keySet()) { final var safetyClause = buildPostconditionSafetyClause(thread); result.add(safetyClause); @@ -315,7 +315,7 @@ public UnmodifiableTransFormula getTransformula() { // add actual constraints for spec edges, do nothing if not a spec edge protected void transformSpecEdgeClause(final IcfgEdge edge, final HornClauseBuilder clause) { - if (isPreConditionSpecEdge(edge)) { + if (isPreConditionSpecEdge(edge) && mPrefs.specMode() == SpecMode.POSTCONDITION) { incrementThreadCounter(clause, mStartedVar); } else if (isPostConditionSpecEdge(edge)) { incrementThreadCounter(clause, mTerminatedVar); @@ -330,7 +330,7 @@ protected void incrementThreadCounter(final HornClauseBuilder clause, final HcTh } protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { - if (mPrefs.specMode() != SpecMode.PRE_POST) { + if (!mPrefs.hasPreconditions()) { return false; } @@ -340,7 +340,7 @@ protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { } protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { - if (mPrefs.specMode() != SpecMode.PRE_POST) { + if (mPrefs.specMode() != SpecMode.POSTCONDITION) { return false; } @@ -401,13 +401,15 @@ protected HornClauseBuilder buildInitialClause() { addOutLocationConstraint(clause, instance, initialLocs.get(instance)); } - if (mPrefs.specMode() == SpecMode.PRE_POST) { + if (mPrefs.specMode() == SpecMode.POSTCONDITION) { // add constraints that thread counters (for thread-modular encoding of postconditions) are initially 0 clause.addConstraint( SmtUtils.binaryEquality(mScript, clause.getHeadVar(mStartedVar).getTerm(), numeral(0))); clause.addConstraint( SmtUtils.binaryEquality(mScript, clause.getHeadVar(mTerminatedVar).getTerm(), numeral(0))); + } + if (mPrefs.hasPreconditions()) { // add precondition constraint final var locals = mLocalVars.values().collect(Collectors.toList()); for (final var entry : initialLocs.entrySet()) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index f5896b2f84b..a20f4bbf9af 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -51,9 +51,14 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "all starting at once."; public static final ConcurrencyMode DEF_CONCURRENCY_MODE = ConcurrencyMode.PARAMETRIC; + public static final String LABEL_HAS_PRECONDITION = "Assume program has a precondition"; + public static final String DESC_HAS_PRECONDITION = + "Use if the thread templates have a precondition annotated as a 'free requires'."; + public static final boolean DEF_HAS_PRECONDITION = true; + public static final String LABEL_SPEC_MODE = "Specification mode"; public static final String DESC_SPEC_MODE = "Describes how the specification for the program is given."; - public static final SpecMode DEF_SPEC_MODE = SpecMode.PRE_POST; + public static final SpecMode DEF_SPEC_MODE = SpecMode.POSTCONDITION; public static final String LABEL_THREADMODULAR_LEVEL = "Thread-Modular Proof Level"; public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; @@ -82,6 +87,8 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_CONCURRENCY_MODE, DEF_CONCURRENCY_MODE, DESC_CONCURRENCY_MODE, PreferenceType.Combo, ConcurrencyMode.values()), + new UltimatePreferenceItem<>(LABEL_HAS_PRECONDITION, DEF_HAS_PRECONDITION, DESC_HAS_PRECONDITION, + PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SPEC_MODE, DEF_SPEC_MODE, DESC_SPEC_MODE, PreferenceType.Combo, SpecMode.values()), new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 5f95db4960e..918390fb399 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -33,7 +33,7 @@ public class IcfgToChcPreferences { private final IPreferenceProvider mPrefs; public enum SpecMode { - ASSERT_VIOLATIONS, PRE_POST + ASSERT_VIOLATIONS, POSTCONDITION } public IcfgToChcPreferences(final IPreferenceProvider prefs) { @@ -44,6 +44,10 @@ public ConcurrencyMode concurrencyMode() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONCURRENCY_MODE, ConcurrencyMode.class); } + public boolean hasPreconditions() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_HAS_PRECONDITION); + } + public SpecMode specMode() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_SPEC_MODE, SpecMode.class); } From 3cf5dbcc9762ad002e25d8e7d925121edc09f445 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 8 May 2023 20:17:42 +0200 Subject: [PATCH 022/124] IHcReplacementVar: consistently give Script not Sort --- .../plugins/icfgtochc/concurrent/HcLocationVar.java | 6 ++++-- .../ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java | 6 ++++-- .../plugins/icfgtochc/concurrent/HcThreadCounterVar.java | 6 ++++-- .../plugins/icfgtochc/concurrent/HcThreadIdVar.java | 5 ++--- .../concurrent/SleepSetThreadModularHornClauseProvider.java | 4 ++-- .../concurrent/ThreadModularHornClauseProvider.java | 6 +++--- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java index c6bbdb71d99..d7227a85efb 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java @@ -2,6 +2,8 @@ import java.util.Objects; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; /** @@ -13,9 +15,9 @@ public class HcLocationVar implements IHcThreadSpecificVar { private final ThreadInstance mInstance; private final Sort mSort; - public HcLocationVar(final ThreadInstance instance, final Sort sort) { + public HcLocationVar(final ThreadInstance instance, final Script script) { mInstance = instance; - mSort = sort; + mSort = SmtSortUtils.getIntSort(script); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 0247f66f732..847d04c060e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -28,15 +28,17 @@ import java.util.Objects; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; public class HcSleepVar implements IHcThreadSpecificVar { private final Sort mSort; private final ThreadInstance mInstance; - public HcSleepVar(final ThreadInstance instance, final Sort sort) { + public HcSleepVar(final ThreadInstance instance, final Script script) { mInstance = instance; - mSort = sort; + mSort = SmtSortUtils.getBoolSort(script); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java index b668c6e75a0..99cc78e0733 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java @@ -28,6 +28,8 @@ import java.util.Objects; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; /** @@ -51,9 +53,9 @@ public class HcThreadCounterVar implements IHcReplacementVar { private final boolean mIsStarted; private final Sort mSort; - public HcThreadCounterVar(final boolean isStarted, final Sort sort) { + public HcThreadCounterVar(final boolean isStarted, final Script script) { mIsStarted = isStarted; - mSort = sort; + mSort = SmtSortUtils.getIntSort(script); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java index f05240c07aa..aef70349095 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java @@ -28,18 +28,17 @@ import java.util.Objects; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; public class HcThreadIdVar implements IHcThreadSpecificVar { - private static final String SORT = "Int"; - private final Sort mSort; private final ThreadInstance mInstance; public HcThreadIdVar(final ThreadInstance instance, final Script script) { mInstance = instance; - mSort = script.sort(SORT); + mSort = SmtSortUtils.getIntSort(script); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 9bd5f2cdbfb..2a3e67a9906 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -78,7 +78,7 @@ protected List createThreadSpecificVars(final ThreadInstan // add thread ID and sleep set result.add(0, new HcThreadIdVar(instance, mScript)); - result.add(1, new HcSleepVar(instance, getBoolSort())); + result.add(1, new HcSleepVar(instance, mScript)); return result; } @@ -136,7 +136,7 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition } // interfering thread is not sleeping - final var sleep = new HcSleepVar(interferingThread, getBoolSort()); + final var sleep = new HcSleepVar(interferingThread, mScript); clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); // update sleep variables diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index b1b4a05ebb6..6f06c8aa88a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -132,8 +132,8 @@ public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, mBottomLocation = numeral(-1); if (mPrefs.specMode() == SpecMode.POSTCONDITION) { - mStartedVar = new HcThreadCounterVar(true, getIntSort()); - mTerminatedVar = new HcThreadCounterVar(false, getIntSort()); + mStartedVar = new HcThreadCounterVar(true, mScript); + mTerminatedVar = new HcThreadCounterVar(false, mScript); } else { mStartedVar = null; mTerminatedVar = null; @@ -228,7 +228,7 @@ protected List createGlobalVars() { protected List createThreadSpecificVars(final ThreadInstance instance) { final var result = new ArrayList(); - final var location = new HcLocationVar(instance, getIntSort()); + final var location = new HcLocationVar(instance, mScript); mLocationVars.put(instance, location); result.add(location); From bc239dc93072decbd0f7d32b6a964d3de000b595 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 8 May 2023 20:22:23 +0200 Subject: [PATCH 023/124] add interface for finite-valued variables, and implement for HcSleepVar --- .../icfgtochc/concurrent/HcSleepVar.java | 11 ++++- .../concurrent/IHcFiniteReplacementVar.java | 49 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcFiniteReplacementVar.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 847d04c060e..54d41c3c480 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -27,18 +27,22 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; import java.util.Objects; +import java.util.Set; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.logic.Term; -public class HcSleepVar implements IHcThreadSpecificVar { +public class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar { private final Sort mSort; private final ThreadInstance mInstance; + private final Set mValues; public HcSleepVar(final ThreadInstance instance, final Script script) { mInstance = instance; mSort = SmtSortUtils.getBoolSort(script); + mValues = Set.of(script.term("true"), script.term("false")); } @Override @@ -51,6 +55,11 @@ public ThreadInstance getThreadInstance() { return mInstance; } + @Override + public Set getAllValues() { + return mValues; + } + @Override public String toString() { return "sleep_" + mInstance; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcFiniteReplacementVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcFiniteReplacementVar.java new file mode 100644 index 00000000000..52f75815c87 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcFiniteReplacementVar.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.Set; + +import de.uni_freiburg.informatik.ultimate.logic.Term; + +/** + * An interface for variables that can only take finitely many distinct values. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + */ +public interface IHcFiniteReplacementVar extends IHcReplacementVar { + /** + * The set of all possible values this variable can take. All terms must have the sort returned by + * {@link #getSort()}. The terms must not have free variables, nor refer to uninterpreted function symbols. + * + * For any two terms t1 and t2 in the returned set, either + * Objects.equals(t1, t2) must return true, or the equation (= t1 t2) must be + * unsatisfiable. + */ + Set getAllValues(); +} From 049375592b2ce6f692f20773fd2a6da70512430d Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 8 May 2023 20:29:19 +0200 Subject: [PATCH 024/124] PredicateInfo: drop bidirectional map, simplify code --- .../concurrent/HornClauseBuilder.java | 11 +++---- .../icfgtochc/concurrent/PredicateInfo.java | 31 +++++++------------ .../ThreadModularHornClauseProvider.java | 15 ++++----- 3 files changed, 22 insertions(+), 35 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 26adda8d550..de1dddc3a84 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -33,7 +33,6 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.IntStream; import de.uni_freiburg.informatik.ultimate.lib.chc.HcBodyVar; import de.uni_freiburg.informatik.ultimate.lib.chc.HcHeadVar; @@ -98,8 +97,7 @@ public void differentBodyHeadVar(final IHcReplacementVar variable) { } public List getDefaultBodyArgs(final PredicateInfo predicate) { - return IntStream.range(0, predicate.getParamCount()) - .mapToObj(i -> getBodyVar(predicate.getParameter(i)).getTerm()) + return predicate.getParameters().stream().map(param -> getBodyVar(param).getTerm()) .collect(Collectors.toCollection(ArrayList::new)); } @@ -126,8 +124,8 @@ public HornClause build() { clause = new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); } else { - final var headArgs = IntStream.range(0, mHeadPredicate.getParamCount()) - .mapToObj(i -> getHeadVar(mHeadPredicate.getParameter(i))).collect(Collectors.toList()); + final var headArgs = + mHeadPredicate.getParameters().stream().map(this::getHeadVar).collect(Collectors.toList()); clause = new HornClause(mManagedScript, mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, mBodyPreds, substitutedBodyArgs, mBodyVars); } @@ -143,8 +141,7 @@ private void prepareSubstitution() { } mSubstitution.clear(); - for (int i = 0; i < mHeadPredicate.getParamCount(); ++i) { - final var variable = mHeadPredicate.getParameter(i); + for (final var variable : mHeadPredicate.getParameters()) { if (!mModifiedVars.contains(variable)) { mSubstitution.put(getBodyVar(variable).getTermVariable(), getHeadVar(variable).getTerm()); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java index 4d13dbdf187..08a271885d8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java @@ -26,47 +26,40 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +import java.util.Collection; +import java.util.List; import java.util.Objects; import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; public class PredicateInfo { private final HcPredicateSymbol mPredicate; - private final BidirectionalMap mVariable2Index; + protected final List mParameters; - public PredicateInfo(final HcPredicateSymbol predicate, - final BidirectionalMap variable2Index) { + public PredicateInfo(final HcPredicateSymbol predicate, final List parameters) { mPredicate = predicate; - mVariable2Index = variable2Index; + mParameters = parameters; } public HcPredicateSymbol getPredicate() { return mPredicate; } - public boolean hasParameter(final IHcReplacementVar variable) { - return mVariable2Index.containsKey(variable); - } - - public int getIndex(final IHcReplacementVar variable) { - assert mVariable2Index.containsKey(variable); - return mVariable2Index.get(variable); + public Collection getParameters() { + return mParameters; } - public IHcReplacementVar getParameter(final int index) { - final var result = mVariable2Index.inverse().get(index); - assert result != null : "No parameter at index " + index + " (out of " + mPredicate.getArity() + ")"; - return result; + public boolean hasParameter(final IHcReplacementVar variable) { + return mParameters.contains(variable); } public int getParamCount() { - return mVariable2Index.size(); + return mParameters.size(); } @Override public int hashCode() { - return Objects.hash(mPredicate, mVariable2Index); + return Objects.hash(mPredicate, mParameters); } @Override @@ -81,6 +74,6 @@ public boolean equals(final Object obj) { return false; } final PredicateInfo other = (PredicateInfo) obj; - return Objects.equals(mPredicate, other.mPredicate) && Objects.equals(mVariable2Index, other.mVariable2Index); + return Objects.equals(mPredicate, other.mPredicate) && Objects.equals(mParameters, other.mParameters); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 6f06c8aa88a..036e30a68f4 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -37,7 +38,6 @@ import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; -import java.util.stream.IntStream; import java.util.stream.Stream; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; @@ -62,7 +62,6 @@ import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences.SpecMode; -import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; import de.uni_freiburg.informatik.ultimate.util.datastructures.DataStructureUtils; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; @@ -168,10 +167,7 @@ private PredicateInfo createInvariantPredicate() { final List sorts = parameters.stream().map(IHcReplacementVar::getSort).collect(Collectors.toList()); final var predicate = mSymbolTable.getOrConstructHornClausePredicateSymbol(FUNCTION_NAME, sorts); - final var paramMap = IntStream.range(0, parameters.size()).mapToObj(i -> new Pair<>(parameters.get(i), i)) - .collect(Collectors.toMap(Pair::getKey, Pair::getValue, (i, j) -> i, BidirectionalMap::new)); - - return new PredicateInfo(predicate, paramMap); + return new PredicateInfo(predicate, parameters); } /** @@ -549,10 +545,11 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition final var interferingVars = createThreadSpecificVars(interferingThread); for (int i = 0; i < instanceVars.size(); ++i) { final var original = instanceVars.get(i); - final var replaced = interferingVars.get(i); if (mInvariantPredicate.hasParameter(original)) { - final int index = mInvariantPredicate.getIndex(original); - bodyArgs.set(index, clause.getBodyVar(replaced).getTerm()); + final var originalTerm = clause.getBodyVar(original).getTerm(); + final var replaced = interferingVars.get(i); + final var replacedTerm = clause.getBodyVar(replaced).getTerm(); + Collections.replaceAll(bodyArgs, originalTerm, replacedTerm); } } From 1a5620faddce8c6d0f8bb0454776473327a20164 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 8 May 2023 20:30:12 +0200 Subject: [PATCH 025/124] add small optimization: drop Horn clauses with constraint false --- .../icfgtochc/concurrent/ExtensibleHornClauseProvider.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java index 6b49d270381..f98e406ad01 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java @@ -35,6 +35,7 @@ import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; @@ -61,7 +62,8 @@ protected final HornClauseBuilder createBuilder(final String comment) { protected abstract List buildAllClauses(); public final List getClauses() { - return buildAllClauses().stream().map(HornClauseBuilder::build).collect(Collectors.toList()); + return buildAllClauses().stream().map(HornClauseBuilder::build) + .filter(c -> !SmtUtils.isFalseLiteral(c.getConstraintFormula())).collect(Collectors.toList()); } protected final Term numeral(final long n) { From 95355cc5b625f871dc2fc2d5e08420636bf3d462 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 9 May 2023 08:29:39 +0200 Subject: [PATCH 026/124] add predicate families, to prepare support for different encodings --- .../icfgtochc/concurrent/PredicateFamily.java | 146 +++++++++++++++++ .../concurrent/PredicateVariant.java | 147 ++++++++++++++++++ 2 files changed, 293 insertions(+) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateFamily.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateVariant.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateFamily.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateFamily.java new file mode 100644 index 00000000000..371ccae4181 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateFamily.java @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.ArrayDeque; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.util.datastructures.DataStructureUtils; +import de.uni_freiburg.informatik.ultimate.util.datastructures.ImmutableList; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; + +/** + * A finite indexed family of predicate symbols. The index is given by a list of {@link IHcFiniteReplacementVar}s. For + * each combination of values of these variables, there is a unique predicate symbol. + * + * For instance, consider a predicate {@code P(x,y,z)}. If the first two parameters are booleans (and can thus only take + * finitely many values), we can describe this predicate through the family consisting of the four predicates + * {@code P_false_false(z)}, {@code P_false_true(z)}, {@code P_true_false(z)} and {@code P_true_true(z)}. + * + * We use this class to abstract over different modes for Horn clause generation, where certain finite parameters (e.g. + * ICFG locations) can either be treated symbolically (using quantified variables, and possibly constraints over them) + * or explicitly (i.e., different predicate symbols depending on the variables' values). + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + */ +public class PredicateFamily { + private final HcSymbolTable mSymbolTable; + private final PredicateInfo mBasePredicate; + private final List mIndices; + + private final List mVariants; + + /** + * Creates a new indexed family of predicates. + * + * @param symbolTable + * A symbol table where predicate symbols shall be declared + * @param basePredicate + * A base predicate for the family, where all parameters are symbolic. The various predicates in the + * family will be derived by removing the {@code indices} from the symbolic parameters, and making them + * explicit instead. + * @param indices + * The parameters of the base predicate that shall be made explicit. + */ + public PredicateFamily(final HcSymbolTable symbolTable, final PredicateInfo basePredicate, + final List indices) { + mSymbolTable = symbolTable; + mBasePredicate = basePredicate; + mIndices = indices; + + mVariants = createVariants(); + } + + public PredicateInfo getBasePredicate() { + return mBasePredicate; + } + + public List getVariants() { + return mVariants; + } + + public List getVariants(final Map indexValues) { + return mVariants.stream().filter(p -> p.matches(indexValues)).collect(Collectors.toList()); + } + + public PredicateVariant getVariant(final Map indexValues) { + assert isCompleteIndexMap(indexValues); + return DataStructureUtils.getOneAndOnly(mVariants.stream().filter(p -> p.matches(indexValues))::iterator, + "instance"); + } + + public boolean isIndexedBy(final IHcFiniteReplacementVar variable) { + return mIndices.contains(variable); + } + + private List createVariants() { + return constructCartesianProductOfValues().stream().map(this::constructVariant).collect(Collectors.toList()); + } + + private PredicateVariant constructVariant(final ImmutableList values) { + final var valueMap = + IntStream.range(0, mIndices.size()).mapToObj(i -> new Pair<>(mIndices.get(i), values.get(i))) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); + return new PredicateVariant(mSymbolTable, this, valueMap); + } + + private ArrayDeque> constructCartesianProductOfValues() { + final var product = new ArrayDeque>(); + product.push(ImmutableList.empty()); + + final var iterator = mIndices.listIterator(mIndices.size()); + while (iterator.hasPrevious()) { + final var index = iterator.previous(); + final int size = product.size(); + for (int i = 0; i < size; ++i) { + final var tuple = product.pollFirst(); + for (final var value : index.getAllValues()) { + final var extendedTuple = new ImmutableList<>(value, tuple); + product.offerLast(extendedTuple); + } + } + } + + return product; + } + + private boolean isCompleteIndexMap(final Map indexValues) { + for (final var ind : mIndices) { + final var value = indexValues.get(ind); + if (value == null) { + return false; + } + assert ind.getAllValues().contains(value) : "Wrong value for " + ind + ": " + value; + } + return true; + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateVariant.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateVariant.java new file mode 100644 index 00000000000..97fc3aa9c4c --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateVariant.java @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +/** + * A member of a {@link PredicateFamily}, where the family's indices have been fixed to concrete values. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + */ +public class PredicateVariant extends PredicateInfo { + private final PredicateFamily mFamily; + private final Map mIndexValues; + + PredicateVariant(final HcSymbolTable symbolTable, final PredicateFamily family, + final Map indexValues) { + this(symbolTable, family, indexValues, + projectParameters(family.getBasePredicate().mParameters, indexValues.keySet())); + } + + private PredicateVariant(final HcSymbolTable symbolTable, final PredicateFamily family, + final Map indexValues, final List parameters) { + super(instantiatePredicate(symbolTable, family.getBasePredicate(), indexValues, parameters), parameters); + mFamily = family; + mIndexValues = indexValues; + } + + /** + * Determines if this instance has the given values for its indices. Values for parameters which are not indices are + * ignored. + * + * @param indexMap + * Maps certain variables to values. May include mappings for variables that are not indices (ignored), + * and may omit mappings for some of the indices (can have any value). + * @return {@code true} if for all indices of this predicate that are present in the map, the instance's value + * equals the value in the map; {@code false} otherwise. + */ + public boolean matches(final Map indexMap) { + for (final var entry : indexMap.entrySet()) { + final var variable = entry.getKey(); + if (mFamily.isIndexedBy(variable) && !Objects.equals(entry.getValue(), mIndexValues.get(variable))) { + return false; + } + } + return true; + } + + /** + * Determines if the given variable is an index of this predicate variant (i.e., the predicate fixes a value of the + * variable). + */ + public boolean hasIndex(final IHcFiniteReplacementVar variable) { + return mFamily.isIndexedBy(variable); + } + + /** + * Retrieves the fixed value of the given variable associated with this predicate variant. The variable must be an + * index of the predicate variant (see {@link #hasIndex(IHcFiniteReplacementVar)}). + */ + public Term getIndexValue(final IHcFiniteReplacementVar variable) { + assert hasIndex(variable) : variable + " is not an index of this predicate variant"; + return mIndexValues.get(variable); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + Objects.hash(mFamily, mIndexValues); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final PredicateVariant other = (PredicateVariant) obj; + return Objects.equals(mFamily, other.mFamily) && Objects.equals(mIndexValues, other.mIndexValues); + } + + private static HcPredicateSymbol instantiatePredicate(final HcSymbolTable symbolTable, + final PredicateInfo predicate, final Map indexValues, + final List parameters) { + final var name = constructInstanceName(predicate.getPredicate().getName(), indexValues); + final var paramSorts = parameters.stream().map(IHcReplacementVar::getSort).collect(Collectors.toList()); + return symbolTable.getOrConstructHornClausePredicateSymbol(name, paramSorts); + } + + private static String constructInstanceName(final String basename, + final Map indexValues) { + final var name = new StringBuilder(basename); + + for (final var entry : indexValues.entrySet()) { + name.append("_"); + name.append(entry.getKey()); + name.append("="); + name.append(entry.getValue()); + } + + return name.toString(); + } + + private static List projectParameters(final List parameters, + final Set indices) { + return parameters.stream().filter(p -> !indices.contains(p)).collect(Collectors.toList()); + } +} From a7f57b1af524033335598e396fa3840c20e97a22 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 9 May 2023 08:45:32 +0200 Subject: [PATCH 027/124] add settings for future encoding variants --- .../IcfgToChcPreferenceInitializer.java | 16 +++++++++++++++- .../preferences/IcfgToChcPreferences.java | 8 ++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index a20f4bbf9af..317fc0cadf3 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -64,6 +64,11 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; public static final int DEF_THREADMODULAR_LEVEL = 2; + public static final String LABEL_EXPLICIT_LOCATIONS = "Encode control locations explicitly"; + public static final String DESC_EXPLICIT_LOCATIONS = "Control locations can be encoded symbolically " + + "(as CHC variables), or explicitly (by using different predicate symbols)."; + public static final boolean DEF_EXPLICIT_LOCATIONS = false; + public static final String LABEL_LIPTON_REDUCTION = "Apply Lipton reduction"; public static final String DESC_LIPTON_REDUCTION = "If enabled, Lipton reduction is applied to simplify thread " + "templates, before a thread-modular proof is computed."; @@ -74,6 +79,11 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "program. This allows for more programs to be proven correct."; public static final boolean DEF_SLEEP_SET_REDUCTION = true; + public static final String LABEL_EXPLICIT_SLEEP = "Encode sleep sets explicitly"; + public static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " + + "or explicitly (by using different predicate symbols)."; + public static final boolean DEF_EXPLICIT_SLEEP = false; + /** * Default constructor. */ @@ -93,10 +103,14 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { SpecMode.values()), new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), + new UltimatePreferenceItem<>(LABEL_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, + PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, - DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean) }; + DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, + PreferenceType.Boolean) }; } public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 918390fb399..0e4bdf01f9b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -56,6 +56,10 @@ public int getThreadModularProofLevel() { return mPrefs.getInt(IcfgToChcPreferenceInitializer.LABEL_THREADMODULAR_LEVEL); } + public boolean explicitLocations() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_LOCATIONS); + } + public boolean useLiptonReduction() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_LIPTON_REDUCTION); } @@ -63,4 +67,8 @@ public boolean useLiptonReduction() { public boolean useSleepSets() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SLEEP_SET_REDUCTION); } + + public boolean explicitSleep() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); + } } From 85aa4c433bbbd4815c123511fd81fdf9226c20e7 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 9 May 2023 13:13:41 +0200 Subject: [PATCH 028/124] add setting for different preference order encoding --- .../preferences/IcfgToChcPreferenceInitializer.java | 7 +++++++ .../icfgtochc/preferences/IcfgToChcPreferences.java | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 317fc0cadf3..b44c2e9a8d8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -79,6 +79,11 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "program. This allows for more programs to be proven correct."; public static final boolean DEF_SLEEP_SET_REDUCTION = true; + public static final String LABEL_BREAK_PREFORDER_SYMMETRY = "Break symmetry of preference order"; + public static final String DESC_BREAK_PREFORDER_SYMMETRY = "A straightforward encoding forces proofs to consider " + + "all symmetric preference orders. If we break symmetry, more proofs are accepted."; + public static final boolean DEF_BREAK_PREFORDER_SYMMETRY = true; + public static final String LABEL_EXPLICIT_SLEEP = "Encode sleep sets explicitly"; public static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " + "or explicitly (by using different predicate symbols)."; @@ -109,6 +114,8 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DESC_BREAK_PREFORDER_SYMMETRY, + DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, PreferenceType.Boolean) }; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 0e4bdf01f9b..9ad7681e7c2 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -68,6 +68,10 @@ public boolean useSleepSets() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SLEEP_SET_REDUCTION); } + public boolean breakPreferenceOrderSymmetry() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.DESC_BREAK_PREFORDER_SYMMETRY); + } + public boolean explicitSleep() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); } From 4114dde94a677f95af9a69ac4327e8d9844e3474 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 10:05:07 +0200 Subject: [PATCH 029/124] IHcThreadSpecificVar: add forInstance method --- .../icfgtochc/concurrent/HcLocalVar.java | 5 +++++ .../icfgtochc/concurrent/HcLocationVar.java | 11 +++++++++- .../icfgtochc/concurrent/HcSleepVar.java | 22 ++++++++++++++----- .../icfgtochc/concurrent/HcThreadIdVar.java | 19 +++++++++++----- .../concurrent/IHcThreadSpecificVar.java | 8 +++++++ 5 files changed, 53 insertions(+), 12 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java index 092195d5358..fe0f8fbaec4 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java @@ -29,6 +29,11 @@ public ThreadInstance getThreadInstance() { return mInstance; } + @Override + public IHcThreadSpecificVar forInstance(final int instanceId) { + return new HcLocalVar(mVariable, new ThreadInstance(mInstance.getTemplateName(), instanceId)); + } + @Override public Sort getSort() { return mVariable.getSort(); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java index d7227a85efb..5e067058f32 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java @@ -16,8 +16,12 @@ public class HcLocationVar implements IHcThreadSpecificVar { private final Sort mSort; public HcLocationVar(final ThreadInstance instance, final Script script) { + this(instance, SmtSortUtils.getIntSort(script)); + } + + private HcLocationVar(final ThreadInstance instance, final Sort sort) { mInstance = instance; - mSort = SmtSortUtils.getIntSort(script); + mSort = sort; } @Override @@ -25,6 +29,11 @@ public ThreadInstance getThreadInstance() { return mInstance; } + @Override + public IHcThreadSpecificVar forInstance(final int instanceId) { + return new HcLocationVar(new ThreadInstance(mInstance.getTemplateName(), instanceId), mSort); + } + @Override public Sort getSort() { return mSort; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 54d41c3c480..3c66f98c8b5 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -40,14 +40,13 @@ public class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar private final Set mValues; public HcSleepVar(final ThreadInstance instance, final Script script) { - mInstance = instance; - mSort = SmtSortUtils.getBoolSort(script); - mValues = Set.of(script.term("true"), script.term("false")); + this(instance, SmtSortUtils.getBoolSort(script), Set.of(script.term("true"), script.term("false"))); } - @Override - public Sort getSort() { - return mSort; + private HcSleepVar(final ThreadInstance instance, final Sort sort, final Set values) { + mInstance = instance; + mSort = sort; + mValues = values; } @Override @@ -55,11 +54,22 @@ public ThreadInstance getThreadInstance() { return mInstance; } + @Override + public IHcThreadSpecificVar forInstance(final int instanceId) { + // TODO Auto-generated method stub + return null; + } + @Override public Set getAllValues() { return mValues; } + @Override + public Sort getSort() { + return mSort; + } + @Override public String toString() { return "sleep_" + mInstance; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java index aef70349095..b00defe0ae3 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java @@ -37,13 +37,12 @@ public class HcThreadIdVar implements IHcThreadSpecificVar { private final ThreadInstance mInstance; public HcThreadIdVar(final ThreadInstance instance, final Script script) { - mInstance = instance; - mSort = SmtSortUtils.getIntSort(script); + this(instance, SmtSortUtils.getIntSort(script)); } - @Override - public Sort getSort() { - return mSort; + private HcThreadIdVar(final ThreadInstance instance, final Sort sort) { + mInstance = instance; + mSort = sort; } @Override @@ -51,6 +50,16 @@ public ThreadInstance getThreadInstance() { return mInstance; } + @Override + public IHcThreadSpecificVar forInstance(final int instanceId) { + return new HcThreadIdVar(new ThreadInstance(mInstance.getTemplateName(), instanceId), mSort); + } + + @Override + public Sort getSort() { + return mSort; + } + @Override public String toString() { return "id_" + mInstance; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java index 389f62066ef..0add2e14be7 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcThreadSpecificVar.java @@ -28,4 +28,12 @@ public interface IHcThreadSpecificVar extends IHcReplacementVar { ThreadInstance getThreadInstance(); + + /** + * Retrieves the corresponding variable for the given thread instance ID. + * + * @param instanceId + * the instance number + */ + IHcThreadSpecificVar forInstance(int instanceId); } From 65b7c63a6c5d846df7adda264f89d44690d90cda Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 10:59:38 +0200 Subject: [PATCH 030/124] fix IcfgToChc preferences, output more detailed error in the future --- .../informatik/ultimate/core/coreplugin/PluginFactory.java | 5 +++-- .../preferences/IcfgToChcPreferenceInitializer.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/PluginFactory.java b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/PluginFactory.java index 2936827df7c..a5d4d4dcbc8 100644 --- a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/PluginFactory.java +++ b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/PluginFactory.java @@ -208,8 +208,9 @@ private List loadAdmissiblePlugins() { } rtr.add(tool); } catch (final Exception ex) { - mLogger.fatal("Exception during admissibility check of plugin " + elem.getName() + ": " - + ex.getMessage()); + mLogger.fatal( + "Exception during admissibility check of plugin " + elem.getName() + ": " + ex.getMessage(), + ex); } } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index b44c2e9a8d8..d5f0e03855d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -108,13 +108,13 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { SpecMode.values()), new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), - new UltimatePreferenceItem<>(LABEL_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, + new UltimatePreferenceItem<>(LABEL_EXPLICIT_LOCATIONS, DEF_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DESC_BREAK_PREFORDER_SYMMETRY, + new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DEF_BREAK_PREFORDER_SYMMETRY, DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, PreferenceType.Boolean) }; From 721589e2d8f4d83a7a84522130ca2fd1f917b421 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 13:36:21 +0200 Subject: [PATCH 031/124] another fix for settings code --- .../plugins/icfgtochc/preferences/IcfgToChcPreferences.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 9ad7681e7c2..875371e0022 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -69,7 +69,7 @@ public boolean useSleepSets() { } public boolean breakPreferenceOrderSymmetry() { - return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.DESC_BREAK_PREFORDER_SYMMETRY); + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_BREAK_PREFORDER_SYMMETRY); } public boolean explicitSleep() { From 9aa0c92c54d50d2f20427c49fab48fa9ebad0096 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 13:37:05 +0200 Subject: [PATCH 032/124] HcSleepVar: properly implement forInstance --- .../ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 3c66f98c8b5..8b4f780113b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -56,8 +56,7 @@ public ThreadInstance getThreadInstance() { @Override public IHcThreadSpecificVar forInstance(final int instanceId) { - // TODO Auto-generated method stub - return null; + return new HcSleepVar(new ThreadInstance(mInstance.getTemplateName(), instanceId), mSort, mValues); } @Override From c78c7c0aa6d4d584c58693ae52eea796e480f1cb Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 13:41:22 +0200 Subject: [PATCH 033/124] SleepSetThreadModularProofs: properly implement symmetry breaking --- .../icfgtochc/concurrent/HcSleepVar.java | 4 +- ...eepSetThreadModularHornClauseProvider.java | 209 +++++++++++++----- .../ThreadModularHornClauseProvider.java | 106 +++++---- 3 files changed, 224 insertions(+), 95 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java index 8b4f780113b..1dbebc8f9ea 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java @@ -30,6 +30,7 @@ import java.util.Set; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; @@ -40,7 +41,8 @@ public class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar private final Set mValues; public HcSleepVar(final ThreadInstance instance, final Script script) { - this(instance, SmtSortUtils.getBoolSort(script), Set.of(script.term("true"), script.term("false"))); + this(instance, SmtSortUtils.getBoolSort(script), + Set.of(script.term(SMTLIBConstants.TRUE), script.term(SMTLIBConstants.FALSE))); } private HcSleepVar(final ThreadInstance instance, final Sort sort, final Set values) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 2a3e67a9906..81521a16c82 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -26,12 +26,15 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.IntStream; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; @@ -42,6 +45,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; @@ -61,7 +65,11 @@ public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider se mThreadLocations = icfg.getProgramPoints().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); - mIdVars = extractThreadVars(HcThreadIdVar.class); + if (!mPrefs.breakPreferenceOrderSymmetry()) { + mIdVars = extractThreadVars(HcThreadIdVar.class); + } else { + mIdVars = null; + } mSleepVars = extractThreadVars(HcSleepVar.class); } @@ -76,9 +84,13 @@ private Map extractThreadVars(final Class varClass) { protected List createThreadSpecificVars(final ThreadInstance instance) { final var result = super.createThreadSpecificVars(instance); - // add thread ID and sleep set - result.add(0, new HcThreadIdVar(instance, mScript)); - result.add(1, new HcSleepVar(instance, mScript)); + // add sleep set variable + result.add(0, new HcSleepVar(instance, mScript)); + + if (!mPrefs.breakPreferenceOrderSymmetry()) { + // add thread ID (used to describe preference order) + result.add(0, new HcThreadIdVar(instance, mScript)); + } return result; } @@ -87,6 +99,11 @@ protected List createThreadSpecificVars(final ThreadInstan protected HornClauseBuilder buildInitialClause() { final var clause = super.buildInitialClause(); + // thread IDs are pairwise different + if (!mPrefs.breakPreferenceOrderSymmetry()) { + ensureUniqueThreadIDs(clause); + } + // all sleep variables are initialized to false for (final var instance : mInstances) { final var sleep = mSleepVars.get(instance); @@ -108,9 +125,6 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); } - // thread IDs are ordered - ensureThreadOrdering(clause); - // update sleep variables for (final var instance : mInstances) { updateSleepInductive(clause, transition, preds.keySet(), updatedThread, instance); @@ -119,16 +133,34 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran return clause; } + @Override + protected List buildNonInterferenceClauses(final IIcfgTransition transition) { + if (!mPrefs.breakPreferenceOrderSymmetry()) { + return super.buildNonInterferenceClauses(transition); + } + + final var result = new ArrayList(); + final var instanceCount = getInstances(transition.getPrecedingProcedure()).size(); + for (int i = 0; i <= instanceCount; ++i) { + result.add(buildNonInterferenceClause(transition, i)); + } + + return result; + } + + // This overload constructs non-interference clauses where the preference order is treated symbolically. @Override protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + if (mPrefs.breakPreferenceOrderSymmetry()) { + throw new UnsupportedOperationException("This method does not support breaking preference order symmetry. " + + "Call the other overload of this method instead."); + } + final var clause = super.buildNonInterferenceClause(transition); final var interferingThread = getInterferingThread(transition); final var interferingId = new HcThreadIdVar(interferingThread, mScript); - // thread IDs are ordered - ensureThreadOrdering(clause); - // ensure interfering thread has distinct thread ID for (final var instance : mInstances) { clause.addConstraint(SmtUtils.distinct(mScript, clause.getBodyVar(mIdVars.get(instance)).getTerm(), @@ -147,79 +179,148 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition return clause; } - private void ensureThreadOrdering(final HornClauseBuilder clause) { - for (int i = 0; i < mInstances.size(); ++i) { - final var instance = mInstances.get(i); - final var id = mIdVars.get(instance); - - // fix ordering between thread IDs - if (i + 1 < mInstances.size()) { - final var next = mInstances.get(i + 1); - final var nextId = mIdVars.get(next); - clause.addConstraint( - SmtUtils.less(mScript, clause.getBodyVar(id).getTerm(), clause.getBodyVar(nextId).getTerm())); + // This overload constructs non-interference clauses where preference order symmetry is broken, and the preference + // order is resolved statically. + protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition, final int index) { + if (!mPrefs.breakPreferenceOrderSymmetry()) { + throw new UnsupportedOperationException("This method breaks preference order symmetry, which is turned off." + + " Call the other overload of this method instead."); + } + + // TODO support transitions with multiple predecessors (joins) + final var interferingThread = getInterferingThread(transition); + // final var interferingVars = createThreadSpecificVars(interferingThread); + final var instances = getInstances(interferingThread.getTemplateName()); + + final var clause = buildNonInterferenceClause(transition, (c, replacedInstance) -> { + // the sequence of instances to consider + final var relevantInstances = new ArrayList<>(instances); + relevantInstances.add(index, interferingThread); + relevantInstances.remove(replacedInstance); + + final var substitution = IntStream.range(0, instances.size()) + .mapToObj(i -> new Pair<>(instances.get(i), relevantInstances.get(i))) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); + + // take the default parameters, and adjust them to the relevant sequence of instances + final var bodyArgs = new ArrayList<>(mInvariantPredicate.getParameters()); + for (int i = 0; i < bodyArgs.size(); ++i) { + final var arg = bodyArgs.get(i); + if (!(arg instanceof IHcThreadSpecificVar)) { + continue; + } + final var specific = (IHcThreadSpecificVar) arg; + final var oldThread = specific.getThreadInstance(); + final var newThread = substitution.get(oldThread); + if (newThread != null) { + assert Objects.equals(oldThread.getTemplateName(), newThread.getTemplateName()); + final var replaced = specific.forInstance(newThread.getInstanceNumber()); + bodyArgs.set(i, replaced); + } + } + + return bodyArgs.stream().map(v -> c.getBodyVar(v).getTerm()).collect(Collectors.toList()); + }); + + // interfering thread is not sleeping + final var sleep = new HcSleepVar(interferingThread, mScript); + clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); + + // update sleep variables + for (final var instance : mInstances) { + final var prefOrder = index < instance.getInstanceNumber() ? mScript.term(SMTLIBConstants.FALSE) + : mScript.term(SMTLIBConstants.TRUE); + updateSleep(clause, transition, instance, prefOrder); + } + + return clause; + } + + private void ensureUniqueThreadIDs(final HornClauseBuilder clause) { + for (final var first : mInstances) { + final var firstId = clause.getHeadVar(mIdVars.get(first)); + for (final var second : mInstances) { + if (!Objects.equals(first, second)) { + final var secondId = clause.getHeadVar(mIdVars.get(second)); + clause.addConstraint(SmtUtils.distinct(mScript, firstId.getTerm(), secondId.getTerm())); + } } } } - // update sleep variable depending on commutativity and thread ID ordering - // Here the ordering can be resolved statically + // update sleep variable depending on commutativity and preference order private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTransition transition, final Set activeThreads, final ThreadInstance primaryActiveThread, final ThreadInstance current) { - final var loc = clause.getBodyVar(mLocationVars.get(current)); - final Term commConstr = getCommutativityConstraint(current, loc.getTerm(), transition); - - // for now, the preference order is non-positional, and given by the ordering in mInstances - final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); - - final var sleep = mSleepVars.get(current); if (activeThreads.contains(current)) { // no update of sleep variable - } else if (ordering < 0) { - // current thread is AFTER primary thread - // set sleep variable to false / leave unchanged - clause.differentBodyHeadVar(sleep); - final var oldSleep = clause.getBodyVar(sleep); - final var newSleep = clause.getHeadVar(sleep); - clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), - SmtUtils.and(mScript, oldSleep.getTerm(), commConstr))); + return; + } + + final Term prefOrder; + if (mPrefs.breakPreferenceOrderSymmetry()) { + // We resolve the preference order statically. + // For now, the preference order is non-positional, and given by the ordering in mInstances. + final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); + // Formula expressing whether current thread is BEFORE primary thread. + prefOrder = ordering < 0 ? mScript.term(SMTLIBConstants.FALSE) : mScript.term(SMTLIBConstants.TRUE); } else { - // set sleep variable to false / true - clause.differentBodyHeadVar(sleep); - final var newSleep = clause.getHeadVar(sleep); - clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), commConstr)); + // We resolve the preference order symbolically, using ID variables. + prefOrder = symbolicPreferenceOrderConstraint(clause, current, primaryActiveThread); } + + updateSleep(clause, transition, current, prefOrder); } - // update sleep variable depending on commutativity and thread ID ordering - // Here the ordering can only be resolved at runtime, so we treat it statically + // update sleep variable depending on commutativity and preference order private void updateSleepNonInterference(final HornClauseBuilder clause, final IIcfgTransition transition, final HcThreadIdVar interferingId, final ThreadInstance current) { + // TODO if breaking symmetry, do this statically! + final var prefOrder = symbolicPreferenceOrderConstraint(clause, current, interferingId.getThreadInstance()); + + updateSleep(clause, transition, current, prefOrder); + } + + // update sleep variable depending on commutativity and preference order + private void updateSleep(final HornClauseBuilder clause, final IIcfgTransition transition, + final ThreadInstance current, final Term prefOrder) { final var sleep = mSleepVars.get(current); clause.differentBodyHeadVar(sleep); + final var oldSleep = clause.getBodyVar(sleep); final var newSleep = clause.getHeadVar(sleep); - final var currentLoc = clause.getBodyVar(mLocationVars.get(current)); - final var currentId = clause.getBodyVar(mIdVars.get(current)); + final var canBePutToSleep = SmtUtils.or(mScript, prefOrder, oldSleep.getTerm()); + if (SmtUtils.isFalseLiteral(canBePutToSleep)) { + // optimization: If commutativity does not play a role, skip computation of commutativity constraint + // sleep' = false + clause.addConstraint( + SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), mScript.term(SMTLIBConstants.FALSE))); + return; + } + + // get constraint describing commutativity + final var currentLoc = clause.getBodyVar(mLocationVars.get(current)); final Term commConstr = getCommutativityConstraint(current, currentLoc.getTerm(), transition); + // sleep' = (current < interfering \/ sleep) /\ commConstr - clause.addConstraint( - SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), - SmtUtils.and(mScript, - SmtUtils.or(mScript, - SmtUtils.less(mScript, currentId.getTerm(), - clause.getBodyVar(interferingId).getTerm()), - oldSleep.getTerm()), - commConstr))); + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), + SmtUtils.and(mScript, canBePutToSleep, commConstr))); + } + + private Term symbolicPreferenceOrderConstraint(final HornClauseBuilder clause, final ThreadInstance current, + final ThreadInstance active) { + final var currentId = clause.getBodyVar(new HcThreadIdVar(current, mScript)); + final var activeId = clause.getBodyVar(new HcThreadIdVar(active, mScript)); + return SmtUtils.less(mScript, currentId.getTerm(), activeId.getTerm()); } protected Term getCommutativityConstraint(final ThreadInstance instance, final Term locVar, final IIcfgTransition currentEdge) { final var commLocations = new HashSet(); for (final var loc : mThreadLocations.get(instance.getTemplateName())) { + // TODO can be optimized: if (= locVar loc) is false, don't check independence if (loc.getOutgoingEdges().stream() // ignore spec edges: the original edges are replaced, and the replacing transitions commute .filter(e -> !isPreConditionSpecEdge(e) && !isPostConditionSpecEdge(e)) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 036e30a68f4..a4df8ed3d55 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -36,6 +36,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.function.BiFunction; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -254,29 +255,7 @@ protected List buildAllClauses() { final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); while (edges.hasNext()) { final IcfgEdge original = edges.next(); - - // replace spec edges by dummy transitions that do nothing (actual constraints are added later) - IcfgEdge edge; - if (isPreConditionSpecEdge(original) || isPostConditionSpecEdge(original)) { - edge = createDummyEdge(original); - } else { - edge = original; - } - - // add inductivity clauses - for (final var prePost : getCartesianPrePostProduct(edge)) { - final var clause = - buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()); - transformSpecEdgeClause(original, clause); - result.add(clause); - } - - // add non-interference clause - if (mUnboundedTemplates.contains(proc)) { - final var clause = buildNonInterferenceClause(edge); - transformSpecEdgeClause(original, clause); - result.add(clause); - } + result.addAll(buildClausesForTransition(original)); } } @@ -299,6 +278,37 @@ protected List buildAllClauses() { return result; } + protected List buildClausesForTransition(final IcfgEdge original) { + final var result = new ArrayList(); + + // replace spec edges by dummy transitions that do nothing (actual constraints are added later) + IcfgEdge edge; + if (isPreConditionSpecEdge(original) || isPostConditionSpecEdge(original)) { + edge = createDummyEdge(original); + } else { + edge = original; + } + + // add inductivity clauses + for (final var prePost : getCartesianPrePostProduct(edge)) { + final var clause = + buildInductivityClause(edge, prePost.getFirst(), prePost.getSecond(), prePost.getThird()); + transformSpecEdgeClause(original, clause); + result.add(clause); + } + + // add non-interference clause + if (mUnboundedTemplates.contains(edge.getPrecedingProcedure())) { + final var clauses = buildNonInterferenceClauses(edge); + for (final var clause : clauses) { + transformSpecEdgeClause(original, clause); + } + result.addAll(clauses); + } + + return result; + } + protected IcfgEdge createDummyEdge(final IcfgEdge original) { final var tf = TransFormulaBuilder.getTrivialTransFormula(mManagedScript); return new IcfgEdge(original.getSource(), original.getTarget(), original.getPayload()) { @@ -523,10 +533,29 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran return clause; } + protected List buildNonInterferenceClauses(final IIcfgTransition transition) { + final var result = new ArrayList(); + result.add(buildNonInterferenceClause(transition)); + return result; + } + /** * Builds a noninterference clause for the given transition. */ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + // TODO support transitions with multiple predecessors (joins) + final var interferingThread = getInterferingThread(transition); + final var interferingVars = createThreadSpecificVars(interferingThread); + + return buildNonInterferenceClause(transition, (clause, instance) -> { + final var bodyArgs = new ArrayList<>(mInvariantPredicate.getParameters()); + replaceThreadVariables(bodyArgs, instance, interferingVars); + return bodyArgs.stream().map(v -> clause.getBodyVar(v).getTerm()).collect(Collectors.toList()); + }); + } + + protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition, + final BiFunction> getInterferencePrecondition) { final var clause = createBuilder(mInvariantPredicate, "non-interference clause for transition " + transition.hashCode() + " with transformula " + transition.getTransformula()); @@ -538,21 +567,7 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition // add precondition clauses for (final var instance : getInstances(interferingThread.getTemplateName())) { - final var bodyArgs = clause.getDefaultBodyArgs(mInvariantPredicate); - - // replace thread-specific variables with those for the interfering thread - final var instanceVars = mThreadSpecificVars.get(instance); - final var interferingVars = createThreadSpecificVars(interferingThread); - for (int i = 0; i < instanceVars.size(); ++i) { - final var original = instanceVars.get(i); - if (mInvariantPredicate.hasParameter(original)) { - final var originalTerm = clause.getBodyVar(original).getTerm(); - final var replaced = interferingVars.get(i); - final var replacedTerm = clause.getBodyVar(replaced).getTerm(); - Collections.replaceAll(bodyArgs, originalTerm, replacedTerm); - } - } - + final var bodyArgs = getInterferencePrecondition.apply(clause, instance); clause.addBodyPredicate(mInvariantPredicate, bodyArgs); } @@ -567,6 +582,17 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition return clause; } + protected void replaceThreadVariables(final List parameters, final ThreadInstance oldInstance, + final List newVariables) { + final var oldVariables = mThreadSpecificVars.get(oldInstance); + assert oldVariables.size() == newVariables.size(); + for (int i = 0; i < oldVariables.size(); ++i) { + final var original = oldVariables.get(i); + final var replaced = newVariables.get(i); + Collections.replaceAll(parameters, original, replaced); + } + } + // Auxiliary methods // ----------------------------------------------------------------------------------------------------------------- @@ -578,7 +604,7 @@ protected void addInLocationConstraint(final HornClauseBuilder clause, final Thr final IcfgLocation location) { final var locTerm = location == null ? mBottomLocation : getLocIndexTerm(location, threadInstance.getTemplateName()); - final HcLocationVar locVar = mLocationVars.get(threadInstance); + final HcLocationVar locVar = new HcLocationVar(threadInstance, mScript); final Term term = clause.getBodyVar(locVar).getTerm(); clause.addConstraint(SmtUtils.binaryEquality(mScript, term, locTerm)); } @@ -655,7 +681,7 @@ protected ThreadInstance getInterferingThread(final IIcfgTransition transitio return new ThreadInstance(transition.getPrecedingProcedure(), INTERFERING_INSTANCE_ID); } - private Stream getInterferingLocals(final ThreadInstance interferingThread) { + protected Stream getInterferingLocals(final ThreadInstance interferingThread) { return mCfgSymbolTable.getLocals(interferingThread.getTemplateName()).stream().filter(mVariableFilter) .map(pv -> new HcLocalVar(pv, interferingThread)); } From 6552ec7f69df95e76249b8074b521f74ad810fd7 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 10 May 2023 13:51:01 +0200 Subject: [PATCH 034/124] SleepSetThreadModular w/o symmetry-breaking: simplify code slightly --- .../SleepSetThreadModularHornClauseProvider.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index 81521a16c82..a78ba7da910 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -173,7 +173,8 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition // update sleep variables for (final var instance : mInstances) { - updateSleepNonInterference(clause, transition, interferingId, instance); + final var prefOrder = symbolicPreferenceOrderConstraint(clause, instance, interferingThread); + updateSleep(clause, transition, instance, prefOrder); } return clause; @@ -272,15 +273,6 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra updateSleep(clause, transition, current, prefOrder); } - // update sleep variable depending on commutativity and preference order - private void updateSleepNonInterference(final HornClauseBuilder clause, final IIcfgTransition transition, - final HcThreadIdVar interferingId, final ThreadInstance current) { - // TODO if breaking symmetry, do this statically! - final var prefOrder = symbolicPreferenceOrderConstraint(clause, current, interferingId.getThreadInstance()); - - updateSleep(clause, transition, current, prefOrder); - } - // update sleep variable depending on commutativity and preference order private void updateSleep(final HornClauseBuilder clause, final IIcfgTransition transition, final ThreadInstance current, final Term prefOrder) { From 7e3d4fa0757dc1e12c3c574caa7e46c39cc9d063 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 17 May 2023 17:16:06 +0200 Subject: [PATCH 035/124] fix transition constraints for local variables In non-interference clauses, the interfering thread's local variables may be updated, but do not appear in the head. Hence, use body variables instead of head variables for them. --- .../icfgtochc/concurrent/HornClauseBuilder.java | 4 ++++ .../concurrent/ThreadModularHornClauseProvider.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index de1dddc3a84..37b178ddd4b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -72,6 +72,10 @@ public HornClauseBuilder(final ManagedScript mgdScript, final HcSymbolTable symb this(mgdScript, symbolTable, null, comment); } + public PredicateInfo getHeadPredicate() { + return mHeadPredicate; + } + public HcBodyVar getFreshBodyVar(final Object identifier, final Sort sort) { final HcBodyVar auxVar = mSymbolTable.getOrConstructBodyVar(identifier, sort); mBodyVars.add(auxVar); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index a4df8ed3d55..88ac04b657f 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -42,6 +42,7 @@ import java.util.stream.Stream; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.chc.HcBodyVar; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; @@ -668,8 +669,15 @@ private static void prepareSubstitution(final HornClauseBuilder clause, final Un } final TermVariable outVar = tf.getOutVars().get(pv); + final var dummyOutVars = new HashMap(); if (outVar != null && !Objects.equals(inVar, outVar)) { - substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + final var headPred = clause.getHeadPredicate(); + if (headPred != null && headPred.hasParameter(rv)) { + substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + } else { + final var bodyVar = dummyOutVars.computeIfAbsent(rv, x -> clause.getFreshBodyVar(x, x.getSort())); + substitution.put(outVar, bodyVar.getTerm()); + } } if (canBeUpdated && tf.getAssignedVars().contains(pv)) { From 611e7b951651c1ec494690095038f179f416777b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 17 May 2023 17:38:37 +0200 Subject: [PATCH 036/124] add alternative assert encoding The assertion condition need not be handled as an assume statement. Instead, we can include it as constraint in the error clause. This simplifies the CHC system slightly. The largest benefit is likely for sleep sets, as we do not need to consider commutativity wrt the assume statement. --- ...eepSetThreadModularHornClauseProvider.java | 3 ++ .../ThreadModularHornClauseProvider.java | 49 +++++++++++++++++-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java index a78ba7da910..4cfdf27c461 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java @@ -316,6 +316,9 @@ protected Term getCommutativityConstraint(final ThreadInstance instance, final T if (loc.getOutgoingEdges().stream() // ignore spec edges: the original edges are replaced, and the replacing transitions commute .filter(e -> !isPreConditionSpecEdge(e) && !isPostConditionSpecEdge(e)) + // ignore assert edges if option is set + .filter(e -> SKIP_ASSERTION_EDGES + && mIcfg.getProcedureErrorNodes().get(e.getSucceedingProcedure()).contains(e.getTarget())) .allMatch(e -> mIndependence.isIndependent(null, e, currentEdge) == Dependence.INDEPENDENT)) { commLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 88ac04b657f..114c7f1afe7 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -83,6 +83,7 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvider { private static final String FUNCTION_NAME = "Inv"; private static final int INTERFERING_INSTANCE_ID = -1; + protected static final boolean SKIP_ASSERTION_EDGES = true; protected final IUltimateServiceProvider mServices; protected final IIcfg mIcfg; @@ -254,18 +255,29 @@ protected List buildAllClauses() { final var entryNodes = mIcfg.getProcedureEntryNodes(); for (final String proc : mTemplates) { final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); + final var errorNodes = mIcfg.getProcedureErrorNodes().get(proc); while (edges.hasNext()) { final IcfgEdge original = edges.next(); - result.addAll(buildClausesForTransition(original)); + if (!SKIP_ASSERTION_EDGES || !errorNodes.contains(original.getTarget())) { + result.addAll(buildClausesForTransition(original)); + } } } // add safety clauses switch (mPrefs.specMode()) { case ASSERT_VIOLATIONS: - for (final var pair : getErrorLocations()) { - final var safetyClause = buildErrorSafetyClause(pair.getFirst(), pair.getSecond()); - result.add(safetyClause); + if (SKIP_ASSERTION_EDGES) { + for (final var triple : getErrorConditions()) { + final var safetyClause = + buildErrorSafetyClause(triple.getFirst(), triple.getSecond(), triple.getThird()); + result.add(safetyClause); + } + } else { + for (final var pair : getErrorLocations()) { + final var safetyClause = buildErrorSafetyClause(pair.getFirst(), pair.getSecond()); + result.add(safetyClause); + } } break; case POSTCONDITION: @@ -392,6 +404,17 @@ private List> getErrorLocations() { .collect(Collectors.toList()); } + private List> getErrorConditions() { + return mIcfg.getProcedureErrorNodes().entrySet().stream() + .flatMap(e -> e.getValue().stream().map(l -> new Pair<>(e.getKey(), l))) + .flatMap(e -> e.getValue().getIncomingEdges().stream() + .map(t -> new Triple<>(e.getKey(), t.getSource(), t.getTransformula()))) + .flatMap(e -> mInstances.stream().filter(i -> i.getTemplateName().equals(e.getFirst())) + .> map( + i -> new Triple<>(i, e.getSecond(), e.getThird()))) + .collect(Collectors.toList()); + } + // Horn clause generation // ----------------------------------------------------------------------------------------------------------------- @@ -453,6 +476,24 @@ protected HornClauseBuilder buildErrorSafetyClause(final ThreadInstance thread, return clause; } + protected HornClauseBuilder buildErrorSafetyClause(final ThreadInstance thread, final IcfgLocation loc, + final UnmodifiableTransFormula guard) { + // create a clause with head "false" + final var clause = createBuilder("safety clause for location " + loc + " in thread instance " + thread); + + // add body clause + clause.addBodyPredicate(mInvariantPredicate, clause.getDefaultBodyArgs(mInvariantPredicate)); + + // location constraints + addInLocationConstraint(clause, thread, loc); + + // add transition guard + final var locals = mLocalVars.values().collect(Collectors.toList()); + addTransitionConstraint(clause, guard, thread, locals); + + return clause; + } + /** * Builds a safety clause specifying that if a given thread exits, and the numbers of started and exited threads are * equal, the postcondition holds. From 5535543499559d7c41203c8df806b1734da7c555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frank=20Sch=C3=BCssele?= Date: Tue, 23 May 2023 14:47:25 +0200 Subject: [PATCH 037/124] Fix NPE --- .../concurrent/ThreadModularHornClauseProvider.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 114c7f1afe7..ba931ad6fc3 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -254,8 +254,11 @@ protected List buildAllClauses() { final var entryNodes = mIcfg.getProcedureEntryNodes(); for (final String proc : mTemplates) { - final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); final var errorNodes = mIcfg.getProcedureErrorNodes().get(proc); + if (errorNodes == null) { + continue; + } + final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); while (edges.hasNext()) { final IcfgEdge original = edges.next(); if (!SKIP_ASSERTION_EDGES || !errorNodes.contains(original.getTarget())) { From 35689196a40e082a59703d1434e9afb326a5e217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frank=20Sch=C3=BCssele?= Date: Tue, 23 May 2023 15:49:59 +0200 Subject: [PATCH 038/124] Fix NPE properly --- .../concurrent/ThreadModularHornClauseProvider.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index ba931ad6fc3..2597542c723 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -254,14 +254,11 @@ protected List buildAllClauses() { final var entryNodes = mIcfg.getProcedureEntryNodes(); for (final String proc : mTemplates) { - final var errorNodes = mIcfg.getProcedureErrorNodes().get(proc); - if (errorNodes == null) { - continue; - } final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); + final var errorNodes = mIcfg.getProcedureErrorNodes().get(proc); while (edges.hasNext()) { final IcfgEdge original = edges.next(); - if (!SKIP_ASSERTION_EDGES || !errorNodes.contains(original.getTarget())) { + if (!SKIP_ASSERTION_EDGES || errorNodes == null || !errorNodes.contains(original.getTarget())) { result.addAll(buildClausesForTransition(original)); } } From 0e06dcb955370d5e5fcc9d366af6f1bd14c5ccde Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 24 May 2023 11:02:21 +0200 Subject: [PATCH 039/124] add some comments --- .../icfgtochc/concurrent/ThreadModularHornClauseProvider.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 2597542c723..3f89525124e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -249,9 +249,11 @@ protected List createThreadSpecificVars(final ThreadInstan protected List buildAllClauses() { final var result = new ArrayList(); + // add initial clause final var initialClause = buildInitialClause(); result.add(initialClause); + // add inductivity and non-interference clauses final var entryNodes = mIcfg.getProcedureEntryNodes(); for (final String proc : mTemplates) { final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); From 71759d31a682c9d89332c80717889a4df34fdd59 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 24 May 2023 11:04:25 +0200 Subject: [PATCH 040/124] create new package for POR-related classes --- .../ultimate/plugins/icfgtochc/IcfgToChcObserver.java | 2 +- .../icfgtochc/concurrent/{ => partialorder}/HcSleepVar.java | 5 ++++- .../concurrent/{ => partialorder}/HcThreadIdVar.java | 4 +++- .../SleepSetThreadModularHornClauseProvider.java | 6 +++++- 4 files changed, 13 insertions(+), 4 deletions(-) rename trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/{ => partialorder}/HcSleepVar.java (91%) rename trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/{ => partialorder}/HcThreadIdVar.java (93%) rename trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/{ => partialorder}/SleepSetThreadModularHornClauseProvider.java (97%) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index fb54afea2a6..38ad95514cc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -51,8 +51,8 @@ import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.SleepSetThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SleepSetThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; /** diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java similarity index 91% rename from trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java rename to trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java index 1dbebc8f9ea..a972390d35d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java @@ -24,7 +24,7 @@ * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission * to convey the resulting work. */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; import java.util.Objects; import java.util.Set; @@ -34,6 +34,9 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcFiniteReplacementVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; public class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar { private final Sort mSort; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java similarity index 93% rename from trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java rename to trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java index b00defe0ae3..4fe250bfcca 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java @@ -24,13 +24,15 @@ * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission * to convey the resulting work. */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; import java.util.Objects; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; public class HcThreadIdVar implements IHcThreadSpecificVar { private final Sort mSort; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java similarity index 97% rename from trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java rename to trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 4cfdf27c461..64f614e79f2 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -24,7 +24,7 @@ * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission * to convey the resulting work. */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; import java.util.ArrayList; import java.util.Collection; @@ -47,6 +47,10 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; From bb523551a439bb9b6adeff55d4bc268895684d08 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 24 May 2023 19:12:38 +0200 Subject: [PATCH 041/124] add auxiliary method for skippable asserts --- .../ThreadModularHornClauseProvider.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 3f89525124e..302714f70f8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -257,10 +257,9 @@ protected List buildAllClauses() { final var entryNodes = mIcfg.getProcedureEntryNodes(); for (final String proc : mTemplates) { final IcfgEdgeIterator edges = new IcfgEdgeIterator(entryNodes.get(proc).getOutgoingEdges()); - final var errorNodes = mIcfg.getProcedureErrorNodes().get(proc); while (edges.hasNext()) { final IcfgEdge original = edges.next(); - if (!SKIP_ASSERTION_EDGES || errorNodes == null || !errorNodes.contains(original.getTarget())) { + if (!isSkippableAssertEdge(original)) { result.addAll(buildClausesForTransition(original)); } } @@ -370,6 +369,17 @@ protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { return edge.getTarget().equals(exitLoc); } + protected boolean isSkippableAssertEdge(final IcfgEdge edge) { + if (!SKIP_ASSERTION_EDGES) { + return false; + } + final var errorLocs = mIcfg.getProcedureErrorNodes().get(edge.getSucceedingProcedure()); + if (errorLocs == null) { + return false; + } + return errorLocs.contains(edge.getTarget()); + } + private List, Map, ThreadInstance>> getCartesianPrePostProduct(final IcfgEdge edge) { if (edge instanceof IIcfgForkTransitionThreadCurrent) { From 07ae11c7d39a3eb798c950c3a774e5429d64adaa Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 24 May 2023 19:16:03 +0200 Subject: [PATCH 042/124] fix handling of local variables Previously, local variables could be read from the wrong thread. This lead to an unsound encoding. We now only allow reading from and writing to local variables of the current thread. --- .../concurrent/ThreadModularHornClauseProvider.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 302714f70f8..0066c60b038 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -693,13 +693,15 @@ protected void addTransitionConstraint(final HornClauseBuilder clause, final Unm // deal with global variables for (final var global : mGlobalVars) { - prepareSubstitution(clause, tf, substitution, global, global.getVariable(), true); + prepareSubstitution(clause, tf, substitution, global, global.getVariable()); } // deal with local variables for (final HcLocalVar local : localVariables) { final var updatable = local.getThreadInstance().equals(updatedThread); - prepareSubstitution(clause, tf, substitution, local, local.getVariable(), updatable); + if (updatable) { + prepareSubstitution(clause, tf, substitution, local, local.getVariable()); + } } // replace all other variables with auxiliary variables @@ -714,8 +716,7 @@ protected void addTransitionConstraint(final HornClauseBuilder clause, final Unm } private static void prepareSubstitution(final HornClauseBuilder clause, final UnmodifiableTransFormula tf, - final Map substitution, final IHcReplacementVar rv, final IProgramVar pv, - final boolean canBeUpdated) { + final Map substitution, final IHcReplacementVar rv, final IProgramVar pv) { final TermVariable inVar = tf.getInVars().get(pv); if (inVar != null) { substitution.put(inVar, clause.getBodyVar(rv).getTerm()); @@ -733,7 +734,7 @@ private static void prepareSubstitution(final HornClauseBuilder clause, final Un } } - if (canBeUpdated && tf.getAssignedVars().contains(pv)) { + if (tf.getAssignedVars().contains(pv)) { clause.differentBodyHeadVar(rv); } } From 352794a64b7915282ebaf2ced70cb076b68e4020 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 11:29:26 +0200 Subject: [PATCH 043/124] readable toString for dummy edges (to help debugging) --- .../concurrent/ThreadModularHornClauseProvider.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 0066c60b038..3c8286412b7 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -330,6 +330,11 @@ protected IcfgEdge createDummyEdge(final IcfgEdge original) { public UnmodifiableTransFormula getTransformula() { return tf; } + + @Override + public String toString() { + return "<[ dummy edge: assume true; ]>"; + } }; } From 6a47de5a6c1d098a002c44f86452cd08a5067d65 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 11:31:08 +0200 Subject: [PATCH 044/124] SemanticIndependenceConditionGenerator: also output raw terms --- ...emanticIndependenceConditionGenerator.java | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java index c7894ba8bdf..8db2c3cfa51 100644 --- a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java +++ b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java @@ -104,6 +104,20 @@ public IPredicate generateCondition(final UnmodifiableTransFormula a, final Unmo return generateCondition(null, a, b); } + /** + * Generate a condition under which the given transitions are independent. + * + * @param a + * The first transition + * @param b + * The second transition + * + * @return a sufficient condition for independence + */ + public Term generateConditionTerm(final UnmodifiableTransFormula a, final UnmodifiableTransFormula b) { + return generateConditionTerm(null, a, b); + } + /** * Generate a condition under which the given transitions are independent. * @@ -118,6 +132,23 @@ public IPredicate generateCondition(final UnmodifiableTransFormula a, final Unmo */ public IPredicate generateCondition(final IPredicate context, final UnmodifiableTransFormula a, final UnmodifiableTransFormula b) { + return mFactory.newPredicate(generateConditionTerm(context, a, b)); + } + + /** + * Generate a condition term under which the given transitions are independent. + * + * @param context + * A context that is already known, but not sufficient for commutativity + * @param a + * The first transition + * @param b + * The second transition + * + * @return a sufficient condition for independence + */ + public Term generateConditionTerm(final IPredicate context, final UnmodifiableTransFormula a, + final UnmodifiableTransFormula b) { // Generate both compositions, possibly adding a guard where applicable final UnmodifiableTransFormula ab = withGuard(context, compose(a, b)); final UnmodifiableTransFormula ba = withGuard(mSymmetric ? context : null, compose(b, a)); @@ -146,10 +177,7 @@ public IPredicate generateCondition(final IPredicate context, final Unmodifiable assert !substitution.containsKey(entry.getValue()); substitution.put(entry.getValue(), entry.getKey().getTermVariable()); } - final Term restoredCondition = Substitution.apply(mMgdScript, substitution, condition); - - // Create a predicate - return mFactory.newPredicate(restoredCondition); + return Substitution.apply(mMgdScript, substitution, condition); } private final UnmodifiableTransFormula compose(final UnmodifiableTransFormula first, From 6c221206817f274df548f4f4b5271e2f32316f51 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 11:31:30 +0200 Subject: [PATCH 045/124] add SemanticIndependenceConditionGenerator::isSymmetric --- .../independence/SemanticIndependenceConditionGenerator.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java index 8db2c3cfa51..a31e438bb94 100644 --- a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java +++ b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java @@ -90,6 +90,10 @@ public SemanticIndependenceConditionGenerator(final IUltimateServiceProvider ser mSymmetric = symmetric; } + public boolean isSymmetric() { + return mSymmetric; + } + /** * Generate a condition under which the given transitions are independent. * From 81cfd059fe36ef82eac1d6839de7777071702bbf Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 11:32:30 +0200 Subject: [PATCH 046/124] HcSymbolTable: add missing mapping of head variables --- .../uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java | 1 + 1 file changed, 1 insertion(+) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index 015fb827bfe..a44155b43d1 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -299,6 +299,7 @@ public HcHeadVar getOrConstructHeadVar(final Object identifier, final Sort sort) final var result = new HcHeadVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, mManagedScript, this); mManagedScript.unlock(this); + mTermVarToProgramVar.put(result.getTermVariable(), result); return result; }); } From f838715ba95c4ef8deba7213ac5f62e839087bc5 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 11:48:41 +0200 Subject: [PATCH 047/124] add support for conditional independence (with precomputed commutativity conditions) --- .../plugins/icfgtochc/IcfgToChcObserver.java | 25 ++- .../ThreadModularHornClauseProvider.java | 6 +- ...itionSynthesizingIndependenceRelation.java | 86 ++++++++++ .../ExplicitSymbolicIndependenceRelation.java | 67 ++++++++ .../ISymbolicIndependenceRelation.java | 53 ++++++ .../partialorder/IndependenceChecker.java | 161 ++++++++++++++++++ ...eepSetThreadModularHornClauseProvider.java | 117 ++++++++----- .../IcfgToChcPreferenceInitializer.java | 11 +- .../preferences/IcfgToChcPreferences.java | 6 + 9 files changed, 485 insertions(+), 47 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 38ad95514cc..7374e9ded73 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -40,18 +40,24 @@ import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClauseAST; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgSummaryTransition; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ConditionSynthesizingIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ExplicitSymbolicIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SleepSetThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; @@ -176,7 +182,7 @@ private Collection getHornClauses(IIcfg icfg, final Ma } if (mPrefs.useSleepSets()) { - final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, true); + final var independence = getIndependence(icfg, mgdScript); return new SleepSetThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, independence, mPrefs).getClauses(); } @@ -184,4 +190,21 @@ private Collection getHornClauses(IIcfg icfg, final Ma } return new ChcProviderForCalls(mgdScript, hcSymbolTable).getHornClauses(icfg); } + + private ISymbolicIndependenceRelation getIndependence(final IIcfg icfg, final ManagedScript mgdScript) { + final boolean symmetric = true; + final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, symmetric); + + switch (mPrefs.conditionalIndependence()) { + case OFF: + return new ExplicitSymbolicIndependenceRelation<>(independence, mgdScript.getScript()); + case PRECOMPUTED_CONDITIONS: + final var factory = + new BasicPredicateFactory(mServices, mgdScript, icfg.getCfgSmtToolkit().getSymbolTable()); + final var generator = new SemanticIndependenceConditionGenerator(mServices, mgdScript, factory, symmetric); + return new ConditionSynthesizingIndependenceRelation<>(independence, generator, mgdScript.getScript()); + } + + throw new AssertionError("Unknown conditional independence setting: " + mPrefs.conditionalIndependence()); + } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 3c8286412b7..4face7f1fc8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -564,7 +564,7 @@ protected HornClauseBuilder buildPostconditionSafetyClause(final ThreadInstance * @param updatedThread * The primary active thread, whose local variables are updated by the transition. */ - protected HornClauseBuilder buildInductivityClause(final IIcfgTransition transition, + protected HornClauseBuilder buildInductivityClause(final IcfgEdge transition, final Map preds, final Map succs, final ThreadInstance updatedThread) { final var clause = createBuilder(mInvariantPredicate, @@ -592,7 +592,7 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran return clause; } - protected List buildNonInterferenceClauses(final IIcfgTransition transition) { + protected List buildNonInterferenceClauses(final IcfgEdge transition) { final var result = new ArrayList(); result.add(buildNonInterferenceClause(transition)); return result; @@ -601,7 +601,7 @@ protected List buildNonInterferenceClauses(final IIcfgTransit /** * Builds a noninterference clause for the given transition. */ - protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition) { // TODO support transitions with multiple predecessors (joins) final var interferingThread = getInterferingThread(transition); final var interferingVars = createThreadSpecificVars(interferingThread); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java new file mode 100644 index 00000000000..4b83b376685 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +/** + * An {@link ISymbolicIndependenceRelation} that uses a {@link SemanticIndependenceConditionGenerator} to find a + * sufficient condition for commutativity. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + * @param + */ +public class ConditionSynthesizingIndependenceRelation implements ISymbolicIndependenceRelation { + + private final SemanticIndependenceRelation mExplicitIndependence; + private final SemanticIndependenceConditionGenerator mGenerator; + private final Script mScript; + + public ConditionSynthesizingIndependenceRelation(final SemanticIndependenceRelation explicitIndependence, + final SemanticIndependenceConditionGenerator generator, final Script script) { + mExplicitIndependence = explicitIndependence; + mGenerator = generator; + mScript = script; + + assert mExplicitIndependence.isSymmetric() == mGenerator + .isSymmetric() : "Independence relation and condition generator should both be symmetric, or neither."; + } + + @Override + public Term getIndependenceCondition(final L a, final L b) { + final var dependence = mExplicitIndependence.isIndependent(null, a, b); + switch (dependence) { + case INDEPENDENT: + // Statements always commute, no condition is needed. + return mScript.term(SMTLIBConstants.TRUE); + case UNKNOWN: + // Commutativity condition synthesis probably won't succeed. + return mScript.term(SMTLIBConstants.FALSE); + case DEPENDENT: + final var condition = mGenerator.generateConditionTerm(a.getTransformula(), b.getTransformula()); + if (condition == null) { + // No commutativity condition could be synthesized. + return mScript.term(SMTLIBConstants.FALSE); + } + return condition; + default: + throw new AssertionError("Unknown dependency value: " + dependence); + } + } + + @Override + public boolean isSymmetric() { + return mExplicitIndependence.isSymmetric(); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java new file mode 100644 index 00000000000..3d83a463194 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +/** + * Implements {@link ISymbolicIndependenceRelation} by explicitly checking independence and returning either the term + * {@code true} or the term {@code false}. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + * @param + * The type of letters checked for independence + */ +public class ExplicitSymbolicIndependenceRelation implements ISymbolicIndependenceRelation { + private final IIndependenceRelation mUnderlying; + private final Script mScript; + + public ExplicitSymbolicIndependenceRelation(final IIndependenceRelation underlying, final Script script) { + mUnderlying = underlying; + mScript = script; + } + + @Override + public Term getIndependenceCondition(final L a, final L b) { + final var dependence = mUnderlying.isIndependent(null, a, b); + if (dependence == Dependence.INDEPENDENT) { + return mScript.term(SMTLIBConstants.TRUE); + } + return mScript.term(SMTLIBConstants.FALSE); + } + + @Override + public boolean isSymmetric() { + return mUnderlying.isSymmetric(); + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java new file mode 100644 index 00000000000..a9c1ece0144 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +/** + * Represents an independence (or "commutativity" relation). In spirit, this interface is similar to + * {@link IIndependenceRelation}, but instead of explicitly checking independence, it returns a symbolic condition (a + * boolean {@link Term}) such that, if the term evaluates to {@code true}, then the given letters are independent. + * + * Symbolic independence relations are inherently conditional: The returned {@link Term} is a formula over program + * variables that implies commutativity. However, symbolic independence relations currently do not support passing in a + * known context. + * + * Similar to {@link IIndependenceRelation}s, symbolic independence relations can be symmetric (i.e., describe a + * commutativity relation) or not (i.e., describe a semi-commutativity relation). + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + * @param + * The type of actions checked for independence + */ +public interface ISymbolicIndependenceRelation { + Term getIndependenceCondition(L a, L b); + + boolean isSymmetric(); +} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java new file mode 100644 index 00000000000..357be9b691b --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeFactory; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaBuilder; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ProgramVarUtils; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.logic.TermVariable; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcLocalVar; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; +import de.uni_freiburg.informatik.ultimate.util.datastructures.SerialProvider; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; + +/** + * Utility class that performs independence checks for {@link SleepSetThreadModularHornClauseProvider}. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + */ +class IndependenceChecker { + private final ILogger mLogger; + private final ManagedScript mMgdScript; + private final IIcfgSymbolTable mSymbolTable; + private final ISymbolicIndependenceRelation mIndependence; + private final IcfgEdgeFactory mEdgeFactory; + + private final Map, Term> mCache = new HashMap<>(); + + private final Map mLeftSubstitution; + private final Map mRightSubstitution; + + public IndependenceChecker(final IUltimateServiceProvider services, final CfgSmtToolkit csToolkit, + final ISymbolicIndependenceRelation independence) { + mLogger = services.getLoggingService().getLogger(getClass()); + mMgdScript = csToolkit.getManagedScript(); + mSymbolTable = csToolkit.getSymbolTable(); + mIndependence = independence; + mEdgeFactory = new IcfgEdgeFactory(new SerialProvider()); + + final var localVars = collectLocalVariables(csToolkit); + mLeftSubstitution = createVariableMapping("~~left~~", localVars); + mRightSubstitution = createVariableMapping("~~right~~", localVars); + } + + public Term getIndependenceCondition(final HornClauseBuilder clause, final ThreadInstance thread1, + final IcfgEdge action1, final ThreadInstance thread2, final IcfgEdge action2) { + // first check the cache + final var cached = mCache.get(new Pair<>(action1, action2)); + if (cached != null) { + return deinstantiate(clause, thread1, thread2, cached); + } + + // for symmetric relations, check the cache for the symmetric case as well + if (mIndependence.isSymmetric()) { + final var symCached = mCache.get(new Pair<>(action2, action1)); + if (symCached != null) { + // This needs a different deinstantiation than the cases above and below. + return deinstantiate(clause, thread2, thread1, symCached); + } + } + + final var instantiated = getInstantiatedIndependenceCondition(action1, action2); + return deinstantiate(clause, thread1, thread2, instantiated); + } + + private Term getInstantiatedIndependenceCondition(final IcfgEdge action1, final IcfgEdge action2) { + // compute the independence condition + final var inst1 = instantiate(action1, mLeftSubstitution); + final var inst2 = instantiate(action2, mRightSubstitution); + final var condition = mIndependence.getIndependenceCondition(inst1, inst2); + mLogger.info( + "instantiated independence condition for '" + action1 + "' and '" + action2 + "' is: " + condition); + + // cache the condition for future queries + mCache.put(new Pair<>(action1, action2), condition); + + return condition; + } + + private IcfgEdge instantiate(final IcfgEdge edge, final Map mapping) { + final var tf = edge.getTransformula(); + final var copyTf = TransFormulaBuilder.constructCopy(mMgdScript, tf, mapping); + return mEdgeFactory.createInternalTransition(edge.getSource(), edge.getTarget(), null, copyTf); + } + + private Term deinstantiate(final HornClauseBuilder clause, final ThreadInstance thread1, + final ThreadInstance thread2, final Term term) { + final var backSubstitution = new HashMap(); + addBackSubstitutionMappings(clause, mLeftSubstitution, backSubstitution, thread1); + addBackSubstitutionMappings(clause, mRightSubstitution, backSubstitution, thread2); + return Substitution.apply(mMgdScript, backSubstitution, term); + } + + private void addBackSubstitutionMappings(final HornClauseBuilder clause, + final Map substitution, final Map backSubstitution, + final ThreadInstance thread) { + for (final var local : mSymbolTable.getLocals(thread.getTemplateName())) { + final var hcVar = new HcLocalVar(local, thread); + final var bodyVar = clause.getBodyVar(hcVar); + final var instVar = substitution.get(local); + backSubstitution.put(instVar.getTermVariable(), bodyVar.getTermVariable()); + } + } + + private static Set collectLocalVariables(final CfgSmtToolkit csToolkit) { + final var symbolTable = csToolkit.getSymbolTable(); + return csToolkit.getProcedures().stream().flatMap(p -> symbolTable.getLocals(p).stream()) + .collect(Collectors.toSet()); + } + + private Map createVariableMapping(final String prefix, + final Set localVars) { + final var result = new HashMap(); + for (final var variable : localVars) { + final var identifier = prefix + variable.getIdentifier(); + final var copy = ProgramVarUtils.constructLocalProgramVar(identifier, variable.getProcedure(), + variable.getSort(), mMgdScript, null); + result.put(variable, copy); + } + return result; + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 64f614e79f2..e4b39039803 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -36,12 +35,11 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; @@ -55,7 +53,7 @@ import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornClauseProvider { - private final IIndependenceRelation> mIndependence; + private final IndependenceChecker mIndependenceChecker; private final Map> mThreadLocations; private final Map mIdVars; @@ -63,9 +61,10 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, final IIcfg icfg, final HcSymbolTable symbolTable, - final IIndependenceRelation> independence, final IcfgToChcPreferences prefs) { + final ISymbolicIndependenceRelation> independence, + final IcfgToChcPreferences prefs) { super(services, mgdScript, icfg, symbolTable, prefs); - mIndependence = independence; + mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), independence); mThreadLocations = icfg.getProgramPoints().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); @@ -118,7 +117,7 @@ protected HornClauseBuilder buildInitialClause() { } @Override - protected HornClauseBuilder buildInductivityClause(final IIcfgTransition transition, + protected HornClauseBuilder buildInductivityClause(final IcfgEdge transition, final Map preds, final Map succs, final ThreadInstance updatedThread) { final var clause = super.buildInductivityClause(transition, preds, succs, updatedThread); @@ -138,7 +137,7 @@ protected HornClauseBuilder buildInductivityClause(final IIcfgTransition tran } @Override - protected List buildNonInterferenceClauses(final IIcfgTransition transition) { + protected List buildNonInterferenceClauses(final IcfgEdge transition) { if (!mPrefs.breakPreferenceOrderSymmetry()) { return super.buildNonInterferenceClauses(transition); } @@ -154,7 +153,7 @@ protected List buildNonInterferenceClauses(final IIcfgTransit // This overload constructs non-interference clauses where the preference order is treated symbolically. @Override - protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition) { + protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition) { if (mPrefs.breakPreferenceOrderSymmetry()) { throw new UnsupportedOperationException("This method does not support breaking preference order symmetry. " + "Call the other overload of this method instead."); @@ -176,9 +175,9 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); // update sleep variables - for (final var instance : mInstances) { - final var prefOrder = symbolicPreferenceOrderConstraint(clause, instance, interferingThread); - updateSleep(clause, transition, instance, prefOrder); + for (final var sleepingThread : mInstances) { + final var prefOrder = symbolicPreferenceOrderConstraint(clause, sleepingThread, interferingThread); + updateSleep(clause, interferingThread, transition, sleepingThread, prefOrder); } return clause; @@ -186,7 +185,7 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition // This overload constructs non-interference clauses where preference order symmetry is broken, and the preference // order is resolved statically. - protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition transition, final int index) { + protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition, final int index) { if (!mPrefs.breakPreferenceOrderSymmetry()) { throw new UnsupportedOperationException("This method breaks preference order symmetry, which is turned off." + " Call the other overload of this method instead."); @@ -232,10 +231,10 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition clause.addConstraint(SmtUtils.not(mScript, clause.getBodyVar(sleep).getTerm())); // update sleep variables - for (final var instance : mInstances) { - final var prefOrder = index < instance.getInstanceNumber() ? mScript.term(SMTLIBConstants.FALSE) + for (final var sleepingThread : mInstances) { + final var prefOrder = index < sleepingThread.getInstanceNumber() ? mScript.term(SMTLIBConstants.FALSE) : mScript.term(SMTLIBConstants.TRUE); - updateSleep(clause, transition, instance, prefOrder); + updateSleep(clause, interferingThread, transition, sleepingThread, prefOrder); } return clause; @@ -254,10 +253,10 @@ private void ensureUniqueThreadIDs(final HornClauseBuilder clause) { } // update sleep variable depending on commutativity and preference order - private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTransition transition, + private void updateSleepInductive(final HornClauseBuilder clause, final IcfgEdge transition, final Set activeThreads, final ThreadInstance primaryActiveThread, - final ThreadInstance current) { - if (activeThreads.contains(current)) { + final ThreadInstance updatedThread) { + if (activeThreads.contains(updatedThread)) { // no update of sleep variable return; } @@ -266,21 +265,22 @@ private void updateSleepInductive(final HornClauseBuilder clause, final IIcfgTra if (mPrefs.breakPreferenceOrderSymmetry()) { // We resolve the preference order statically. // For now, the preference order is non-positional, and given by the ordering in mInstances. - final int ordering = Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(current)); + final int ordering = + Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(updatedThread)); // Formula expressing whether current thread is BEFORE primary thread. prefOrder = ordering < 0 ? mScript.term(SMTLIBConstants.FALSE) : mScript.term(SMTLIBConstants.TRUE); } else { // We resolve the preference order symbolically, using ID variables. - prefOrder = symbolicPreferenceOrderConstraint(clause, current, primaryActiveThread); + prefOrder = symbolicPreferenceOrderConstraint(clause, updatedThread, primaryActiveThread); } - updateSleep(clause, transition, current, prefOrder); + updateSleep(clause, primaryActiveThread, transition, updatedThread, prefOrder); } // update sleep variable depending on commutativity and preference order - private void updateSleep(final HornClauseBuilder clause, final IIcfgTransition transition, - final ThreadInstance current, final Term prefOrder) { - final var sleep = mSleepVars.get(current); + private void updateSleep(final HornClauseBuilder clause, final ThreadInstance activeThread, + final IcfgEdge activeEdge, final ThreadInstance updatedThread, final Term prefOrder) { + final var sleep = mSleepVars.get(updatedThread); clause.differentBodyHeadVar(sleep); final var oldSleep = clause.getBodyVar(sleep); @@ -297,8 +297,9 @@ private void updateSleep(final HornClauseBuilder clause, final IIcfgTransition currentEdge) { - final var commLocations = new HashSet(); - for (final var loc : mThreadLocations.get(instance.getTemplateName())) { - // TODO can be optimized: if (= locVar loc) is false, don't check independence - if (loc.getOutgoingEdges().stream() - // ignore spec edges: the original edges are replaced, and the replacing transitions commute - .filter(e -> !isPreConditionSpecEdge(e) && !isPostConditionSpecEdge(e)) - // ignore assert edges if option is set - .filter(e -> SKIP_ASSERTION_EDGES - && mIcfg.getProcedureErrorNodes().get(e.getSucceedingProcedure()).contains(e.getTarget())) - .allMatch(e -> mIndependence.isIndependent(null, e, currentEdge) == Dependence.INDEPENDENT)) { - commLocations.add(getLocIndexTerm(loc, instance.getTemplateName())); + protected Term getCommutativityConstraint(final HornClauseBuilder clause, final ThreadInstance activeThread, + final IcfgEdge activeEdge, final ThreadInstance otherThread, final Term otherLocVar) { + final var disjuncts = new ArrayList(); + for (final var loc : mThreadLocations.get(otherThread.getTemplateName())) { + final var locEquality = + SmtUtils.binaryEquality(mScript, otherLocVar, getLocIndexTerm(loc, otherThread.getTemplateName())); + if (SmtUtils.isFalseLiteral(locEquality)) { + continue; + } + + final var commConstraint = getCommutativityConstraint(clause, activeThread, activeEdge, otherThread, loc); + if (SmtUtils.isFalseLiteral(commConstraint)) { + continue; + } + + final var disjunct = SmtUtils.and(mScript, locEquality, commConstraint); + if (SmtUtils.isTrueLiteral(disjunct)) { + // escape early if commutativity is guaranteed + return mScript.term(SMTLIBConstants.TRUE); + } + + disjuncts.add(disjunct); + } + return SmtUtils.or(mScript, disjuncts); + } + + protected Term getCommutativityConstraint(final HornClauseBuilder clause, final ThreadInstance activeThread, + final IcfgEdge activeEdge, final ThreadInstance otherThread, final IcfgLocation otherLoc) { + final var conjuncts = new ArrayList(); + for (final var edge : otherLoc.getOutgoingEdges()) { + if (isPreConditionSpecEdge(edge) || isPostConditionSpecEdge(edge)) { + // ignore spec edges: the original edges are replaced, and the replacing edges commute with everything + continue; + } + + if (isSkippableAssertEdge(edge)) { + // ignore assert edges if option is set + continue; + } + + final var conjunct = + mIndependenceChecker.getIndependenceCondition(clause, otherThread, edge, activeThread, activeEdge); + if (SmtUtils.isFalseLiteral(conjunct)) { + // escape early if one outgoing edge does not commute under any circumstances + return mScript.term(SMTLIBConstants.FALSE); } + conjuncts.add(conjunct); } - return SmtUtils.or(mScript, commLocations.stream().map(loc -> SmtUtils.binaryEquality(mScript, locVar, loc)) - .collect(Collectors.toList())); + return SmtUtils.and(mScript, conjuncts); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index d5f0e03855d..16fca7afe80 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -89,6 +89,13 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "or explicitly (by using different predicate symbols)."; public static final boolean DEF_EXPLICIT_SLEEP = false; + public static final String LABEL_CONDITIONAL_INDEPENDENCE = "Conditional Independence"; + public static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; + + public enum ConditionalIndependence { + OFF, PRECOMPUTED_CONDITIONS + } + /** * Default constructor. */ @@ -117,7 +124,9 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DEF_BREAK_PREFORDER_SYMMETRY, DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, - PreferenceType.Boolean) }; + PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, + PreferenceType.Combo, ConditionalIndependence.values()) }; } public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 875371e0022..3289b5b6399 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -28,6 +28,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.ConditionalIndependence; public class IcfgToChcPreferences { private final IPreferenceProvider mPrefs; @@ -75,4 +76,9 @@ public boolean breakPreferenceOrderSymmetry() { public boolean explicitSleep() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); } + + public ConditionalIndependence conditionalIndependence() { + return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONDITIONAL_INDEPENDENCE, + ConditionalIndependence.class); + } } From e388a02a65289251b401fde028ceb6dd639bcd8b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 12:01:07 +0200 Subject: [PATCH 048/124] minor preference cleanup: put sleep set settings in container --- .../IcfgToChcPreferenceInitializer.java | 30 ++++++++++++------- .../preferences/UltimatePreferenceItem.java | 2 +- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 16fca7afe80..c47456a2e1e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -28,9 +28,11 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences; import de.uni_freiburg.informatik.ultimate.core.lib.preferences.UltimatePreferenceInitializer; +import de.uni_freiburg.informatik.ultimate.core.model.preferences.BaseUltimatePreferenceItem; import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; import de.uni_freiburg.informatik.ultimate.core.model.preferences.PreferenceType; import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItem; +import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItemContainer; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; @@ -104,8 +106,9 @@ public IcfgToChcPreferenceInitializer() { } @Override - protected UltimatePreferenceItem[] initDefaultPreferences() { - return new UltimatePreferenceItem[] { + protected BaseUltimatePreferenceItem[] initDefaultPreferences() { + + return new BaseUltimatePreferenceItem[] { // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_CONCURRENCY_MODE, DEF_CONCURRENCY_MODE, DESC_CONCURRENCY_MODE, PreferenceType.Combo, ConcurrencyMode.values()), @@ -119,14 +122,21 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, - DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DEF_BREAK_PREFORDER_SYMMETRY, - DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, - PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, - PreferenceType.Combo, ConditionalIndependence.values()) }; + + getSleepSetSettings() }; + } + + private UltimatePreferenceItemContainer getSleepSetSettings() { + final var container = new UltimatePreferenceItemContainer("Sleep Set Reduction"); + container.addItem(new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, + DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean)); + container.addItem(new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DEF_BREAK_PREFORDER_SYMMETRY, + DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean)); + container.addItem(new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, + PreferenceType.Boolean)); + container.addItem(new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, + PreferenceType.Combo, ConditionalIndependence.values())); + return container; } public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { diff --git a/trunk/source/Library-UltimateModel/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java b/trunk/source/Library-UltimateModel/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java index 69c322d6062..52bdb5959ad 100644 --- a/trunk/source/Library-UltimateModel/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java +++ b/trunk/source/Library-UltimateModel/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java @@ -32,7 +32,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.IController; /** - * An UltimatePReferenceItem describes exactly one setting of a preference. Based on its {@link PreferenceType}, the + * An UltimatePreferenceItem describes exactly one setting of a preference. Based on its {@link PreferenceType}, the * active {@link IController} will present it to users for modification. * * @author Daniel Dietsch (dietsch@informatik.uni-freiburg.de) From ef5fd2516eeb0ed95aee49c1e0ea5b344ed6a661 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 13:17:30 +0200 Subject: [PATCH 049/124] move CHC categorization to its own class --- .../plugins/icfgtochc/IcfgToChcObserver.java | 56 +---------- .../ultimate/lib/chc/ChcCategorizer.java | 95 +++++++++++++++++++ .../treeautomizer/TreeAutomizerChcScript.java | 5 +- 3 files changed, 103 insertions(+), 53 deletions(-) create mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcCategorizer.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 7374e9ded73..1b999b311bd 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -34,7 +34,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.models.ModelUtils; import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; -import de.uni_freiburg.informatik.ultimate.lib.chc.ChcCategoryInfo; +import de.uni_freiburg.informatik.ultimate.lib.chc.ChcCategorizer; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornAnnot; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; @@ -47,11 +47,8 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; @@ -100,11 +97,10 @@ private void processIcfg(final IIcfg icfg) { final HcSymbolTable hcSymbolTable = new HcSymbolTable(mgdScript); final Collection resultChcs = getHornClauses(icfg, mgdScript, hcSymbolTable); - final boolean isReturnReachable = isReturnReachable(icfg); - final boolean hasNonLinearClauses = isReturnReachable || !IcfgUtils.getForksInLoop(icfg).isEmpty() - || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC; - final ChcCategoryInfo chcCategoryInfo = - new ChcCategoryInfo(getLogics(resultChcs, mgdScript), hasNonLinearClauses); + final var chcCategoryInfo = ChcCategorizer.categorize(resultChcs, mgdScript); + assert !chcCategoryInfo.containsNonLinearHornClauses() || isReturnReachable(icfg) + || !IcfgUtils.getForksInLoop(icfg).isEmpty() + || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC : "Unexpected non-linear clauses"; final var bad = resultChcs.stream() .filter(chc -> chc.constructFormula(mgdScript, false).getFreeVars().length != 0).findAny(); @@ -117,48 +113,6 @@ private void processIcfg(final IIcfg icfg) { ModelUtils.copyAnnotations(icfg, mResult); } - private static Logics getLogics(final Collection resultChcs, final ManagedScript mgdScript) { - final TermClassifier termClassifierChcs = new TermClassifier(); - resultChcs.forEach(chc -> termClassifierChcs.checkTerm(chc.constructFormula(mgdScript, false))); - final TermClassifier termClassifierConstraints = new TermClassifier(); - resultChcs.forEach(chc -> termClassifierConstraints.checkTerm(chc.getConstraintFormula())); - - boolean hasArrays = false; - boolean hasReals = false; - boolean hasInts = false; - for (final String osn : termClassifierChcs.getOccuringSortNames()) { - hasArrays |= osn.contains(SmtSortUtils.ARRAY_SORT); - hasReals |= osn.contains(SmtSortUtils.REAL_SORT); - hasInts |= osn.contains(SmtSortUtils.INT_SORT); - } - - boolean hasArraysInConstraints = false; - boolean hasRealsInConstraints = false; - boolean hasIntsInConstraints = false; - for (final String osn : termClassifierConstraints.getOccuringSortNames()) { - hasArraysInConstraints |= osn.contains(SmtSortUtils.ARRAY_SORT); - hasRealsInConstraints |= osn.contains(SmtSortUtils.REAL_SORT); - hasIntsInConstraints |= osn.contains(SmtSortUtils.INT_SORT); - } - assert hasArrays == hasArraysInConstraints; - assert hasReals == hasRealsInConstraints; - assert hasInts == hasIntsInConstraints; - - final boolean hasQuantifiersInConstraints = !termClassifierConstraints.getOccuringQuantifiers().isEmpty(); - - if (!hasArrays && hasInts && !hasReals && !hasQuantifiersInConstraints) { - return Logics.QF_LIA; - } - if (!hasArrays && !hasInts && hasReals && !hasQuantifiersInConstraints) { - return Logics.QF_LRA; - } - if (hasArrays && hasInts && !hasReals && !hasQuantifiersInConstraints) { - return Logics.QF_ALIA; - } - // not a CHC-comp 2019 logic -- we don't care for more details right now - return Logics.ALL; - } - private static boolean isReturnReachable(final IIcfg icfg) { return new IcfgEdgeIterator(icfg).asStream().anyMatch(IIcfgSummaryTransition.class::isInstance); } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcCategorizer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcCategorizer.java new file mode 100644 index 00000000000..cbc903f1cc7 --- /dev/null +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcCategorizer.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2019 Alexander Nutz (nutz@informatik.uni-freiburg.de) + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2019-2023 University of Freiburg + * + * This file is part of the ULTIMATE CHC Library. + * + * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE CHC Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE CHC Library. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE CHC Library, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE CHC Library grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.lib.chc; + +import java.util.Collection; + +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermClassifier; +import de.uni_freiburg.informatik.ultimate.logic.Logics; + +public final class ChcCategorizer { + private ChcCategorizer() { + // static class cannot be instantiated + } + + public static ChcCategoryInfo categorize(final Collection clauses, final ManagedScript mgdScript) { + return new ChcCategoryInfo(getLogics(clauses, mgdScript), hasNonLinearClauses(clauses)); + } + + public static boolean hasNonLinearClauses(final Collection clauses) { + return clauses.stream().anyMatch(ChcCategorizer::isNonLinear); + } + + public static boolean isNonLinear(final HornClause clause) { + return clause.getBodyPredicates().size() >= 2; + } + + public static Logics getLogics(final Collection clauses, final ManagedScript mgdScript) { + final TermClassifier termClassifierChcs = new TermClassifier(); + clauses.forEach(chc -> termClassifierChcs.checkTerm(chc.constructFormula(mgdScript, false))); + final TermClassifier termClassifierConstraints = new TermClassifier(); + clauses.forEach(chc -> termClassifierConstraints.checkTerm(chc.getConstraintFormula())); + + boolean hasArrays = false; + boolean hasReals = false; + boolean hasInts = false; + for (final String osn : termClassifierChcs.getOccuringSortNames()) { + hasArrays |= osn.contains(SmtSortUtils.ARRAY_SORT); + hasReals |= osn.contains(SmtSortUtils.REAL_SORT); + hasInts |= osn.contains(SmtSortUtils.INT_SORT); + } + + boolean hasArraysInConstraints = false; + boolean hasRealsInConstraints = false; + boolean hasIntsInConstraints = false; + for (final String osn : termClassifierConstraints.getOccuringSortNames()) { + hasArraysInConstraints |= osn.contains(SmtSortUtils.ARRAY_SORT); + hasRealsInConstraints |= osn.contains(SmtSortUtils.REAL_SORT); + hasIntsInConstraints |= osn.contains(SmtSortUtils.INT_SORT); + } + assert hasArrays == hasArraysInConstraints; + assert hasReals == hasRealsInConstraints; + assert hasInts == hasIntsInConstraints; + + final boolean hasQuantifiersInConstraints = !termClassifierConstraints.getOccuringQuantifiers().isEmpty(); + + if (!hasArrays && hasInts && !hasReals && !hasQuantifiersInConstraints) { + return Logics.QF_LIA; + } + if (!hasArrays && !hasInts && hasReals && !hasQuantifiersInConstraints) { + return Logics.QF_LRA; + } + if (hasArrays && hasInts && !hasReals && !hasQuantifiersInConstraints) { + return Logics.QF_ALIA; + } + // not a CHC-comp 2019 logic -- we don't care for more details right now + return Logics.ALL; + } +} diff --git a/trunk/source/TreeAutomizer/src/de/uni_freiburg/informatik/ultimate/plugins/generator/treeautomizer/TreeAutomizerChcScript.java b/trunk/source/TreeAutomizer/src/de/uni_freiburg/informatik/ultimate/plugins/generator/treeautomizer/TreeAutomizerChcScript.java index 0370725a4cb..d1b888f1508 100644 --- a/trunk/source/TreeAutomizer/src/de/uni_freiburg/informatik/ultimate/plugins/generator/treeautomizer/TreeAutomizerChcScript.java +++ b/trunk/source/TreeAutomizer/src/de/uni_freiburg/informatik/ultimate/plugins/generator/treeautomizer/TreeAutomizerChcScript.java @@ -35,6 +35,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.results.IResult; import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.chc.ChcCategorizer; import de.uni_freiburg.informatik.ultimate.lib.chc.Derivation; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.chc.HornAnnot; @@ -92,8 +93,8 @@ private LBool solve(final IUltimateServiceProvider services, final HcSymbolTable final List system) { reset(); - // TODO missing parameter: category info - final var annot = new HornAnnot(DUMMY_FILENAME, mMgdScript, symbolTable, system, true, null); + final var categoryInfo = ChcCategorizer.categorize(system, mMgdScript); + final var annot = new HornAnnot(DUMMY_FILENAME, mMgdScript, symbolTable, system, true, categoryInfo); final var cegar = new TreeAutomizerCEGAR(services, annot, mPrefs, mLogger); try { final var result = cegar.iterate(); From 3b0b0112d59560fe511f2a787d247e4b3672c075 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 15:12:31 +0200 Subject: [PATCH 050/124] simpler postcondition encoding: only one thread counter --- .../concurrent/HcThreadCounterVar.java | 37 +++++-------------- .../ThreadModularHornClauseProvider.java | 35 ++++++++---------- 2 files changed, 25 insertions(+), 47 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java index 99cc78e0733..45cae313e01 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java @@ -26,35 +26,30 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; -import java.util.Objects; - import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; /** - * A variable that counts the number of started resp. of terminated threads. These variables are used for a - * thread-modular encoding of postconditions. + * A variable that counts the number of running threads. This variable is used for a thread-modular encoding of + * postconditions. * * The thread-modular encoding of postconditions works as follows: *
    - *
  1. The number of started threads is incremented each time one of the initially running threads takes its first + *
  2. The number of running threads is incremented each time one of the initially running threads takes its first * step.
  3. - *
  4. The number of terminated threads is incremented each time one of the initially running threads terminates.
  5. - *
  6. If an initially running thread has terminated, and the numbers of started and terminated threads are equal, then - * the postcondition must hold.
  7. + *
  8. The number of running threads is decremented each time one of the initially running threads terminates.
  9. + *
  10. If an initially running thread has terminated, and the number of running threads is 0, then the postcondition + * must hold.
  11. *
* * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) */ public class HcThreadCounterVar implements IHcReplacementVar { - // An instance either represents the number of started threads (if this boolean is true) or of terminated threads - private final boolean mIsStarted; private final Sort mSort; - public HcThreadCounterVar(final boolean isStarted, final Script script) { - mIsStarted = isStarted; + public HcThreadCounterVar(final Script script) { mSort = SmtSortUtils.getIntSort(script); } @@ -63,22 +58,14 @@ public Sort getSort() { return mSort; } - public boolean isStarted() { - return mIsStarted; - } - - public boolean isTerminated() { - return !mIsStarted; - } - @Override public String toString() { - return mIsStarted ? "~started" : "~terminated"; + return "~running"; } @Override public int hashCode() { - return Objects.hash(mIsStarted); + return 79; } @Override @@ -89,10 +76,6 @@ public boolean equals(final Object obj) { if (obj == null) { return false; } - if (getClass() != obj.getClass()) { - return false; - } - final HcThreadCounterVar other = (HcThreadCounterVar) obj; - return mIsStarted == other.mIsStarted; + return getClass() == obj.getClass(); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 4face7f1fc8..b16c7723ac0 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -105,8 +105,7 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide protected final PredicateInfo mInvariantPredicate; protected final Set mGlobalVars = new HashSet<>(); - protected final HcThreadCounterVar mStartedVar; - protected final HcThreadCounterVar mTerminatedVar; + protected final HcThreadCounterVar mRunningThreadsVar; protected final Map> mThreadSpecificVars = new HashMap<>(); protected final Map mLocationVars = new HashMap<>(); protected final NestedMap2 mLocalVars = new NestedMap2<>(); @@ -134,11 +133,9 @@ public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, mBottomLocation = numeral(-1); if (mPrefs.specMode() == SpecMode.POSTCONDITION) { - mStartedVar = new HcThreadCounterVar(true, mScript); - mTerminatedVar = new HcThreadCounterVar(false, mScript); + mRunningThreadsVar = new HcThreadCounterVar(mScript); } else { - mStartedVar = null; - mTerminatedVar = null; + mRunningThreadsVar = null; } mInvariantPredicate = createInvariantPredicate(); } @@ -186,8 +183,7 @@ protected List getInvariantParameters() { // add variables for thread-modular encoding of postconditions if (mPrefs.specMode() == SpecMode.POSTCONDITION) { - result.add(mStartedVar); - result.add(mTerminatedVar); + result.add(mRunningThreadsVar); } result.addAll(createGlobalVars()); @@ -341,17 +337,18 @@ public String toString() { // add actual constraints for spec edges, do nothing if not a spec edge protected void transformSpecEdgeClause(final IcfgEdge edge, final HornClauseBuilder clause) { if (isPreConditionSpecEdge(edge) && mPrefs.specMode() == SpecMode.POSTCONDITION) { - incrementThreadCounter(clause, mStartedVar); + incrementThreadCounter(clause, mRunningThreadsVar, 1L); } else if (isPostConditionSpecEdge(edge)) { - incrementThreadCounter(clause, mTerminatedVar); + incrementThreadCounter(clause, mRunningThreadsVar, -1L); } } - protected void incrementThreadCounter(final HornClauseBuilder clause, final HcThreadCounterVar counter) { - // add constraint counter' = counter + 1 + protected void incrementThreadCounter(final HornClauseBuilder clause, final HcThreadCounterVar counter, + final long delta) { + // add constraint counter' = counter + delta clause.differentBodyHeadVar(counter); clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getHeadVar(counter).getTerm(), - SmtUtils.sum(mScript, getIntSort(), clause.getBodyVar(counter).getTerm(), numeral(1L)))); + SmtUtils.sum(mScript, getIntSort(), clause.getBodyVar(counter).getTerm(), numeral(delta)))); } protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { @@ -449,11 +446,9 @@ protected HornClauseBuilder buildInitialClause() { } if (mPrefs.specMode() == SpecMode.POSTCONDITION) { - // add constraints that thread counters (for thread-modular encoding of postconditions) are initially 0 + // add constraints that thread counter (for thread-modular encoding of postconditions) is initially 0 clause.addConstraint( - SmtUtils.binaryEquality(mScript, clause.getHeadVar(mStartedVar).getTerm(), numeral(0))); - clause.addConstraint( - SmtUtils.binaryEquality(mScript, clause.getHeadVar(mTerminatedVar).getTerm(), numeral(0))); + SmtUtils.binaryEquality(mScript, clause.getHeadVar(mRunningThreadsVar).getTerm(), numeral(0))); } if (mPrefs.hasPreconditions()) { @@ -529,9 +524,9 @@ protected HornClauseBuilder buildPostconditionSafetyClause(final ThreadInstance final var exitLoc = mIcfg.getProcedureExitNodes().get(thread.getTemplateName()); addInLocationConstraint(clause, thread, exitLoc); - // add thread counter constraint: started == terminated - clause.addConstraint(SmtUtils.binaryEquality(mScript, clause.getBodyVar(mStartedVar).getTerm(), - clause.getBodyVar(mTerminatedVar).getTerm())); + // add thread counter constraint: running == 0 + clause.addConstraint( + SmtUtils.binaryEquality(mScript, clause.getBodyVar(mRunningThreadsVar).getTerm(), numeral(0L))); // add negated postcondition final var postcondition = DataStructureUtils From 9a82c7054acca23fefba4c5b776a0487c847030c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 18:23:31 +0200 Subject: [PATCH 051/124] implement support for different preference orders For now, sequential composition as well as an approximation of lockstep are supported. --- .../plugins/icfgtochc/IcfgToChcObserver.java | 18 +- .../icfgtochc/concurrent/ThreadInstance.java | 40 ++++- .../ThreadModularHornClauseProvider.java | 42 +++-- .../ApproximateLockstepPreferenceOrder.java | 155 ++++++++++++++++++ .../ExplicitPreferenceOrderManager.java | 67 ++++++++ .../partialorder/IPreferenceOrderManager.java | 49 ++++++ .../IThreadModularPreferenceOrder.java | 57 +++++++ .../SequentialCompositionPreferenceOrder.java | 53 ++++++ ...eepSetThreadModularHornClauseProvider.java | 102 ++++-------- .../SymbolicPreferenceOrderManager.java | 77 +++++++++ .../IcfgToChcPreferenceInitializer.java | 22 ++- .../preferences/IcfgToChcPreferences.java | 5 + 12 files changed, 602 insertions(+), 85 deletions(-) create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java create mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 1b999b311bd..5663c467f2b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -49,12 +49,16 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ApproximateLockstepPreferenceOrder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ConditionSynthesizingIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ExplicitSymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ISymbolicIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.IThreadModularPreferenceOrder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SequentialCompositionPreferenceOrder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SleepSetThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; @@ -137,8 +141,9 @@ private Collection getHornClauses(IIcfg icfg, final Ma if (mPrefs.useSleepSets()) { final var independence = getIndependence(icfg, mgdScript); + final var preforder = getPreferenceOrder(mgdScript.getScript(), icfg); return new SleepSetThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, - independence, mPrefs).getClauses(); + independence, preforder, mPrefs).getClauses(); } return new ThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, mPrefs).getClauses(); } @@ -161,4 +166,15 @@ private ISymbolicIndependenceRelation getIndependence(final IIcfg ic throw new AssertionError("Unknown conditional independence setting: " + mPrefs.conditionalIndependence()); } + + private IThreadModularPreferenceOrder getPreferenceOrder(final Script script, final IIcfg icfg) { + switch (mPrefs.preferenceOrder()) { + case SEQ_COMP: + return new SequentialCompositionPreferenceOrder(script); + case LOCKSTEP: + return ApproximateLockstepPreferenceOrder.create(script, icfg); + } + + throw new AssertionError("Unknown preference order setting: " + mPrefs.preferenceOrder()); + } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java index 70df1092830..eb255726034 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadInstance.java @@ -26,9 +26,10 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; +import java.util.Comparator; import java.util.Objects; -public final class ThreadInstance { +public final class ThreadInstance implements Comparable { private final String mTemplateName; private final int mInstanceNumber; @@ -45,6 +46,18 @@ public int getInstanceNumber() { return mInstanceNumber; } + @Override + public int compareTo(final ThreadInstance o) { + if (mInstanceNumber < 0 || o.mInstanceNumber < 0) { + throw new UnsupportedOperationException("Must not compare interfering thread with this method."); + } + final var templateComparison = mTemplateName.compareTo(o.mTemplateName); + if (templateComparison != 0) { + return templateComparison; + } + return Integer.compare(mInstanceNumber, o.mInstanceNumber); + } + @Override public String toString() { return IcfgToChcConcurrentUtils.getReadableString(mTemplateName) + "_" + (mInstanceNumber + 1); @@ -69,4 +82,29 @@ public boolean equals(final Object obj) { final ThreadInstance other = (ThreadInstance) obj; return mInstanceNumber == other.mInstanceNumber && Objects.equals(mTemplateName, other.mTemplateName); } + + public static Comparator getNonInterferenceComparator(final int interferingIndex) { + return (t1, t2) -> { + if (t1.getInstanceNumber() >= 0 && t2.getInstanceNumber() >= 0) { + // If not considering an interfering thread, use the usual ordering + return t1.compareTo(t2); + } + + // between threads of different templates, keep the same ordering as #compareTo + // (i.e. order by template name) + if (!t1.getTemplateName().equals(t2.getTemplateName())) { + return t1.getTemplateName().compareTo(t2.getTemplateName()); + } + if (t1.getInstanceNumber() >= 0) { + // t2 is the interfering thread + return t1.getInstanceNumber() < interferingIndex ? -1 : 1; + } + if (t2.getInstanceNumber() >= 0) { + // t1 is the interfering thread + return interferingIndex <= t2.getInstanceNumber() ? -1 : 1; + } + assert t1.equals(t2); + return 0; + }; + } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index b16c7723ac0..01549301530 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -91,9 +91,9 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvide private final IIcfgSymbolTable mCfgSymbolTable; private final Predicate mVariableFilter; - // maps a procedure name and a location (in the procedure) to an integer, such that the location variable has this - // integer as value iff control is in the given location - private final NestedMap2 mLocationIndices = new NestedMap2<>(); + // Maps each location to an integer, such that the location variable has this integer as value iff control is in the + // given location. Locations in different procedures may be mapped to the same value. + protected final Map mLocationIndices; // used as location for threads that are not currently running private final Term mBottomLocation; @@ -131,7 +131,9 @@ public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, mInstances = getInstances(threadInfo.getFirst()); mUnboundedTemplates = threadInfo.getSecond(); + mLocationIndices = createLocationMap(icfg); mBottomLocation = numeral(-1); + if (mPrefs.specMode() == SpecMode.POSTCONDITION) { mRunningThreadsVar = new HcThreadCounterVar(mScript); } else { @@ -170,6 +172,25 @@ private PredicateInfo createInvariantPredicate() { return new PredicateInfo(predicate, parameters); } + protected Map createLocationMap(final IIcfg icfg) { + final var result = new HashMap(); + for (final var entry : icfg.getProcedureEntryNodes().values()) { + int counter = 0; + result.put(entry, counter); + counter++; + final var iterator = new IcfgEdgeIterator(entry.getOutgoingEdges()); + while (iterator.hasNext()) { + final var edge = iterator.next(); + assert result.containsKey(edge.getSource()) : "edge with unknown source loc"; + if (!result.containsKey(edge.getTarget())) { + result.put(edge.getTarget(), counter); + counter++; + } + } + } + return result; + } + /** * Constructs the sequence of parameters for the invariant predicate. * @@ -656,8 +677,7 @@ protected Map getInitialLocations() { protected void addInLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, final IcfgLocation location) { - final var locTerm = - location == null ? mBottomLocation : getLocIndexTerm(location, threadInstance.getTemplateName()); + final var locTerm = location == null ? mBottomLocation : getLocIndexTerm(location); final HcLocationVar locVar = new HcLocationVar(threadInstance, mScript); final Term term = clause.getBodyVar(locVar).getTerm(); clause.addConstraint(SmtUtils.binaryEquality(mScript, term, locTerm)); @@ -665,20 +685,14 @@ protected void addInLocationConstraint(final HornClauseBuilder clause, final Thr protected void addOutLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, final IcfgLocation location) { - final var locTerm = - location == null ? mBottomLocation : getLocIndexTerm(location, threadInstance.getTemplateName()); + final var locTerm = location == null ? mBottomLocation : getLocIndexTerm(location); final HcLocationVar locVar = mLocationVars.get(threadInstance); final Term term = clause.getHeadVar(locVar).getTerm(); clause.addConstraint(SmtUtils.binaryEquality(mScript, term, locTerm)); } - protected Term getLocIndexTerm(final IcfgLocation loc, final String proc) { - Integer index = mLocationIndices.get(proc, loc); - if (index == null) { - final Map otherIndices = mLocationIndices.get(proc); - index = otherIndices == null ? 0 : otherIndices.size(); - mLocationIndices.put(proc, loc, index); - } + protected Term getLocIndexTerm(final IcfgLocation loc) { + final int index = mLocationIndices.get(loc); return numeral(index); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java new file mode 100644 index 00000000000..85c5ed00bd7 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java @@ -0,0 +1,155 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; + +public class ApproximateLockstepPreferenceOrder implements IThreadModularPreferenceOrder { + private final Script mScript; + private final Map mDepth; + + protected ApproximateLockstepPreferenceOrder(final Script script, final Map depth) { + mScript = script; + mDepth = depth; + } + + @Override + public Term getOrderConstraint(final IcfgLocation lesserLoc, final Term lesserLocTerm, + final IcfgLocation greaterLoc, final Term greaterLocTerm, final Map locationMap) { + if (lesserLoc != null && greaterLoc != null) { + return getOrderConstraint(lesserLoc, greaterLoc); + } + + if (lesserLoc != null) { + return getOrderConstraint(lesserLoc, greaterLocTerm, locationMap); + } + + assert greaterLoc != null : "At least one location must be fixed"; + final var constraint = getOrderConstraint(greaterLoc, lesserLocTerm, locationMap); + + // invert the constraint, because we flipped greaterLoc and lesserLocTerm + return SmtUtils.not(mScript, constraint); + } + + private Term getOrderConstraint(final IcfgLocation lesserLoc, final IcfgLocation greaterLoc) { + if (mDepth.get(lesserLoc) <= mDepth.get(greaterLoc)) { + return mScript.term(SMTLIBConstants.TRUE); + } + return mScript.term(SMTLIBConstants.FALSE); + } + + private Term getOrderConstraint(final IcfgLocation fixedLoc, final Term otherLoc, + final Map locationMap) { + final var fixedDepth = mDepth.get(fixedLoc); + + final var greaterLocs = mDepth.entrySet().stream().filter(e -> e.getValue() >= fixedDepth) + .map(e -> mDepth.get(e.getKey())).sorted().collect(Collectors.toList()); + final var locRanges = rangify(greaterLocs); + + final var disjuncts = new ArrayList(); + for (final var range : locRanges) { + final var disjunct = getIntervalConstraint(otherLoc, range.getFirst(), range.getSecond()); + if (SmtUtils.isTrueLiteral(disjunct)) { + return mScript.term(SMTLIBConstants.TRUE); + } + disjuncts.add(disjunct); + } + return SmtUtils.or(mScript, disjuncts); + } + + // Partitions a sorted list of integers into a sequence of (inclusive) intervals. + private static List> rangify(final List sortedValues) { + final var result = new ArrayList>(); + for (int idx = 0; idx < sortedValues.size();) { + final int start = sortedValues.get(idx); + int current = start; + do { + idx++; + current++; + } while (idx < sortedValues.size() && sortedValues.get(idx) == current); + + result.add(new Pair<>(start, current - 1)); + } + + return result; + } + + private Term getIntervalConstraint(final Term element, final int lowerBound, final int upperBound) { + assert lowerBound <= upperBound : "empty interval encountered"; + final Term upperTerm = SmtUtils.constructIntValue(mScript, BigInteger.valueOf(upperBound)); + + if (lowerBound == upperBound) { + return SmtUtils.binaryEquality(mScript, element, upperTerm); + } + + final Term lowerTerm = SmtUtils.constructIntValue(mScript, BigInteger.valueOf(lowerBound)); + return SmtUtils.and(mScript, SmtUtils.leq(mScript, lowerTerm, element), + SmtUtils.leq(mScript, element, upperTerm)); + } + + @Override + public boolean isPositional() { + return true; + } + + public static ApproximateLockstepPreferenceOrder create(final Script script, final IIcfg icfg) { + return new ApproximateLockstepPreferenceOrder(script, computeDepthMap(icfg)); + } + + protected static Map computeDepthMap(final IIcfg icfg) { + final var result = new HashMap(); + for (final var entry : icfg.getProcedureEntryNodes().values()) { + computeDepthMap(result, entry); + } + return result; + } + + private static void computeDepthMap(final Map map, final IcfgLocation entry) { + map.put(entry, 0); + final var iterator = new IcfgEdgeIterator(entry.getOutgoingEdges()); + while (iterator.hasNext()) { + final var edge = iterator.next(); + assert map.containsKey(edge.getSource()) : "depth of edge source node is unknown"; + final int sourceDepth = map.get(edge.getSource()); + map.merge(edge.getTarget(), sourceDepth + 1, Integer::min); + } + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java new file mode 100644 index 00000000000..056e0277ba6 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; + +class ExplicitPreferenceOrderManager implements IPreferenceOrderManager { + private final IThreadModularPreferenceOrder mPreferenceOrder; + private final Script mScript; + private final Map mLocationMap; + + public ExplicitPreferenceOrderManager(final IThreadModularPreferenceOrder preferenceOrder, final Script script, + final Map locationMap) { + mPreferenceOrder = preferenceOrder; + mScript = script; + mLocationMap = locationMap; + } + + @Override + public Term getOrderConstraint(final HornClauseBuilder clause, final Comparator comp, + final ThreadInstance thread1, final IcfgLocation loc1, final Term locTerm1, final ThreadInstance thread2, + final IcfgLocation loc2, final Term locTerm2) { + final int ordering = comp.compare(thread1, thread2); + if (ordering >= 0) { + return mScript.term(SMTLIBConstants.FALSE); + } + return mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); + } + + @Override + public void ensureUniqueThreadIDs(final HornClauseBuilder clause, final List instances) { + // nothing to do + } +} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java new file mode 100644 index 00000000000..94bae198719 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.Comparator; +import java.util.List; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; + +interface IPreferenceOrderManager { + Term getOrderConstraint(HornClauseBuilder clause, Comparator comp, final ThreadInstance thread1, + final IcfgLocation loc1, final Term locTerm1, final ThreadInstance thread2, final IcfgLocation loc2, + final Term locTerm2); + + default Term getInductiveOrderConstraint(final HornClauseBuilder clause, final ThreadInstance thread1, + final IcfgLocation loc1, final Term locTerm1, final ThreadInstance thread2, final IcfgLocation loc2, + final Term locTerm2) { + return getOrderConstraint(clause, Comparator.naturalOrder(), thread1, loc1, locTerm1, thread2, loc2, locTerm2); + } + + void ensureUniqueThreadIDs(HornClauseBuilder clause, List instances); +} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java new file mode 100644 index 00000000000..5f6ed34c0ae --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.Map; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +public interface IThreadModularPreferenceOrder { + /** + * Constructs a boolean constraint expressing the ordering between two threads. If the constraint evaluates to + * {@code true}, then the "lesser" thread is preferred. Otherwise, the "greater" thread is preferred. + * + * At least one of {@code lesserLoc} and {@code greaterLoc} is guaranteed to be non-null. + * + * @param lesserLoc + * The location of the thread with a lower thread ID. May be null. + * @param lesserLocTerm + * A term denoting the location of the thread with a lower thread ID. + * @param greaterLoc + * The location of the thread with a greater thread ID. May be null. + * @param greaterLocTerm + * A term denoting the location of the thread with a greater thread ID. + * @param locationTerms + * A mapping from locations to the integer value used to represent that location. + * @return a constraint over the given terms (including the terms in {@code locationTerms}) + */ + Term getOrderConstraint(IcfgLocation lesserLoc, Term lesserLocTerm, IcfgLocation greaterLoc, Term greaterLocTerm, + Map locationMap); + + boolean isPositional(); +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java new file mode 100644 index 00000000000..15ba73fafb8 --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.Map; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; + +public class SequentialCompositionPreferenceOrder implements IThreadModularPreferenceOrder { + private final Script mScript; + + public SequentialCompositionPreferenceOrder(final Script script) { + mScript = script; + } + + @Override + public Term getOrderConstraint(final IcfgLocation lesserLoc, final Term lesserLocTerm, + final IcfgLocation greaterLoc, final Term greaterLocTerm, final Map locationMap) { + return mScript.term(SMTLIBConstants.TRUE); + } + + @Override + public boolean isPositional() { + return false; + } +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index e4b39039803..0ad0cac89dc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -28,10 +28,10 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -45,6 +45,7 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcLocationVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; @@ -54,6 +55,7 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornClauseProvider { private final IndependenceChecker mIndependenceChecker; + private final IPreferenceOrderManager mPreferenceManager; private final Map> mThreadLocations; private final Map mIdVars; @@ -62,16 +64,18 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, final IIcfg icfg, final HcSymbolTable symbolTable, final ISymbolicIndependenceRelation> independence, - final IcfgToChcPreferences prefs) { + final IThreadModularPreferenceOrder preferenceOrder, final IcfgToChcPreferences prefs) { super(services, mgdScript, icfg, symbolTable, prefs); mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), independence); mThreadLocations = icfg.getProgramPoints().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); - if (!mPrefs.breakPreferenceOrderSymmetry()) { - mIdVars = extractThreadVars(HcThreadIdVar.class); - } else { + if (mPrefs.breakPreferenceOrderSymmetry()) { mIdVars = null; + mPreferenceManager = new ExplicitPreferenceOrderManager(preferenceOrder, mScript, mLocationIndices); + } else { + mIdVars = extractThreadVars(HcThreadIdVar.class); + mPreferenceManager = new SymbolicPreferenceOrderManager(preferenceOrder, mScript, mLocationIndices); } mSleepVars = extractThreadVars(HcSleepVar.class); } @@ -103,9 +107,7 @@ protected HornClauseBuilder buildInitialClause() { final var clause = super.buildInitialClause(); // thread IDs are pairwise different - if (!mPrefs.breakPreferenceOrderSymmetry()) { - ensureUniqueThreadIDs(clause); - } + mPreferenceManager.ensureUniqueThreadIDs(clause, mInstances); // all sleep variables are initialized to false for (final var instance : mInstances) { @@ -130,7 +132,11 @@ protected HornClauseBuilder buildInductivityClause(final IcfgEdge transition, // update sleep variables for (final var instance : mInstances) { - updateSleepInductive(clause, transition, preds.keySet(), updatedThread, instance); + if (preds.containsKey(updatedThread)) { + // no update of sleep variable + continue; + } + updateSleep(clause, updatedThread, transition, instance, Comparator.naturalOrder()); } return clause; @@ -176,8 +182,7 @@ protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition // update sleep variables for (final var sleepingThread : mInstances) { - final var prefOrder = symbolicPreferenceOrderConstraint(clause, sleepingThread, interferingThread); - updateSleep(clause, interferingThread, transition, sleepingThread, prefOrder); + updateSleep(clause, interferingThread, transition, sleepingThread, null); } return clause; @@ -193,7 +198,6 @@ protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition // TODO support transitions with multiple predecessors (joins) final var interferingThread = getInterferingThread(transition); - // final var interferingVars = createThreadSpecificVars(interferingThread); final var instances = getInstances(interferingThread.getTemplateName()); final var clause = buildNonInterferenceClause(transition, (c, replacedInstance) -> { @@ -232,93 +236,59 @@ protected HornClauseBuilder buildNonInterferenceClause(final IcfgEdge transition // update sleep variables for (final var sleepingThread : mInstances) { - final var prefOrder = index < sleepingThread.getInstanceNumber() ? mScript.term(SMTLIBConstants.FALSE) - : mScript.term(SMTLIBConstants.TRUE); - updateSleep(clause, interferingThread, transition, sleepingThread, prefOrder); + updateSleep(clause, interferingThread, transition, sleepingThread, + ThreadInstance.getNonInterferenceComparator(index)); } return clause; } - private void ensureUniqueThreadIDs(final HornClauseBuilder clause) { - for (final var first : mInstances) { - final var firstId = clause.getHeadVar(mIdVars.get(first)); - for (final var second : mInstances) { - if (!Objects.equals(first, second)) { - final var secondId = clause.getHeadVar(mIdVars.get(second)); - clause.addConstraint(SmtUtils.distinct(mScript, firstId.getTerm(), secondId.getTerm())); - } - } - } - } - - // update sleep variable depending on commutativity and preference order - private void updateSleepInductive(final HornClauseBuilder clause, final IcfgEdge transition, - final Set activeThreads, final ThreadInstance primaryActiveThread, - final ThreadInstance updatedThread) { - if (activeThreads.contains(updatedThread)) { - // no update of sleep variable - return; - } - - final Term prefOrder; - if (mPrefs.breakPreferenceOrderSymmetry()) { - // We resolve the preference order statically. - // For now, the preference order is non-positional, and given by the ordering in mInstances. - final int ordering = - Integer.compare(mInstances.indexOf(primaryActiveThread), mInstances.indexOf(updatedThread)); - // Formula expressing whether current thread is BEFORE primary thread. - prefOrder = ordering < 0 ? mScript.term(SMTLIBConstants.FALSE) : mScript.term(SMTLIBConstants.TRUE); - } else { - // We resolve the preference order symbolically, using ID variables. - prefOrder = symbolicPreferenceOrderConstraint(clause, updatedThread, primaryActiveThread); - } - - updateSleep(clause, primaryActiveThread, transition, updatedThread, prefOrder); - } - // update sleep variable depending on commutativity and preference order private void updateSleep(final HornClauseBuilder clause, final ThreadInstance activeThread, - final IcfgEdge activeEdge, final ThreadInstance updatedThread, final Term prefOrder) { + final IcfgEdge activeEdge, final ThreadInstance updatedThread, + final Comparator comparator) { + // The sleep variable of updatedThread is modified. final var sleep = mSleepVars.get(updatedThread); clause.differentBodyHeadVar(sleep); - final var oldSleep = clause.getBodyVar(sleep); final var newSleep = clause.getHeadVar(sleep); + // Determine the preference order constraint, expressing that updatedThread is preferable to activeThread. + // updatedThread < activeThread + final var updatedLocTerm = clause.getBodyVar(new HcLocationVar(updatedThread, mScript)).getTerm(); + final var activeLoc = activeEdge.getSource(); + final var activeLocTerm = getLocIndexTerm(activeLoc); + final var prefOrder = mPreferenceManager.getOrderConstraint(clause, comparator, updatedThread, null, + updatedLocTerm, activeThread, activeLoc, activeLocTerm); + + // Determine if updatedThread can be put to sleep (or continue to sleep). + // (updatedThread < activeThread) \/ sleep final var canBePutToSleep = SmtUtils.or(mScript, prefOrder, oldSleep.getTerm()); if (SmtUtils.isFalseLiteral(canBePutToSleep)) { - // optimization: If commutativity does not play a role, skip computation of commutativity constraint + // Optimization: If commutativity does not play a role, skip computation of commutativity constraint. // sleep' = false clause.addConstraint( SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), mScript.term(SMTLIBConstants.FALSE))); return; } - // get constraint describing commutativity + // Get constraint describing commutativity. final var currentLoc = clause.getBodyVar(mLocationVars.get(updatedThread)); final Term commConstr = getCommutativityConstraint(clause, activeThread, activeEdge, updatedThread, currentLoc.getTerm()); - // sleep' = (current < interfering \/ sleep) /\ commConstr + // Update the sleep variable of updatedThread, according to the sleep set rule. + // sleep' = ((updatedThread < activeThread) \/ sleep) /\ commConstr clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), SmtUtils.and(mScript, canBePutToSleep, commConstr))); } - private Term symbolicPreferenceOrderConstraint(final HornClauseBuilder clause, final ThreadInstance current, - final ThreadInstance active) { - final var currentId = clause.getBodyVar(new HcThreadIdVar(current, mScript)); - final var activeId = clause.getBodyVar(new HcThreadIdVar(active, mScript)); - return SmtUtils.less(mScript, currentId.getTerm(), activeId.getTerm()); - } - protected Term getCommutativityConstraint(final HornClauseBuilder clause, final ThreadInstance activeThread, final IcfgEdge activeEdge, final ThreadInstance otherThread, final Term otherLocVar) { final var disjuncts = new ArrayList(); for (final var loc : mThreadLocations.get(otherThread.getTemplateName())) { - final var locEquality = - SmtUtils.binaryEquality(mScript, otherLocVar, getLocIndexTerm(loc, otherThread.getTemplateName())); + final var locEquality = SmtUtils.binaryEquality(mScript, otherLocVar, getLocIndexTerm(loc)); if (SmtUtils.isFalseLiteral(locEquality)) { continue; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java new file mode 100644 index 00000000000..6f80ff290cb --- /dev/null +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE IcfgToChc plug-in. + * + * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; + +class SymbolicPreferenceOrderManager implements IPreferenceOrderManager { + private final IThreadModularPreferenceOrder mPreferenceOrder; + private final Script mScript; + private final Map mLocationMap; + + public SymbolicPreferenceOrderManager(final IThreadModularPreferenceOrder preferenceOrder, final Script script, + final Map locationMap) { + mPreferenceOrder = preferenceOrder; + mScript = script; + mLocationMap = locationMap; + } + + @Override + public Term getOrderConstraint(final HornClauseBuilder clause, final Comparator comp, + final ThreadInstance thread1, final IcfgLocation loc1, final Term locTerm1, final ThreadInstance thread2, + final IcfgLocation loc2, final Term locTerm2) { + final var id1 = clause.getBodyVar(new HcThreadIdVar(thread1, mScript)); + final var id2 = clause.getBodyVar(new HcThreadIdVar(thread2, mScript)); + final var lesserConstraint = SmtUtils.less(mScript, id1.getTerm(), id2.getTerm()); + + final var locConstraint = mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); + return SmtUtils.and(mScript, lesserConstraint, locConstraint); + } + + @Override + public void ensureUniqueThreadIDs(final HornClauseBuilder clause, final List instances) { + for (final var first : instances) { + final var firstId = clause.getHeadVar(new HcThreadIdVar(first, mScript)); + for (final var second : instances) { + if (!Objects.equals(first, second)) { + final var secondId = clause.getHeadVar(new HcThreadIdVar(second, mScript)); + clause.addConstraint(SmtUtils.distinct(mScript, firstId.getTerm(), secondId.getTerm())); + } + } + } + } +} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index c47456a2e1e..69fe7909b8d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -46,6 +46,9 @@ */ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitializer { + // SETTINGS FOR CONCURRENT PROGRAMS + // ------------------------------------------------------------------------ + public static final String LABEL_CONCURRENCY_MODE = "Concurrency mode"; public static final String DESC_CONCURRENCY_MODE = "Whether the program starts as a single thread, which may dynamically fork and join new threads, " @@ -62,6 +65,9 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize public static final String DESC_SPEC_MODE = "Describes how the specification for the program is given."; public static final SpecMode DEF_SPEC_MODE = SpecMode.POSTCONDITION; + // SETTINGS FOR THREAD-MODULAR PROOFS + // ------------------------------------------------------------------------ + public static final String LABEL_THREADMODULAR_LEVEL = "Thread-Modular Proof Level"; public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; public static final int DEF_THREADMODULAR_LEVEL = 2; @@ -76,6 +82,9 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "templates, before a thread-modular proof is computed."; public static final boolean DEF_LIPTON_REDUCTION = false; + // SETTINGS FOR SLEEP SET REDUCTION + // ------------------------------------------------------------------------ + public static final String LABEL_SLEEP_SET_REDUCTION = "Enable sleep set reduction"; public static final String DESC_SLEEP_SET_REDUCTION = "If enabled, symbolic sleep set reduction is applied to the " + "program. This allows for more programs to be proven correct."; @@ -91,9 +100,16 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "or explicitly (by using different predicate symbols)."; public static final boolean DEF_EXPLICIT_SLEEP = false; + public static final String LABEL_PREFERENCE_ORDER = "Preference order used for reduction"; + public static final PreferenceOrder DEF_PREFERENCE_ORDER = PreferenceOrder.SEQ_COMP; + public static final String LABEL_CONDITIONAL_INDEPENDENCE = "Conditional Independence"; public static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; + public enum PreferenceOrder { + SEQ_COMP, LOCKSTEP + } + public enum ConditionalIndependence { OFF, PRECOMPUTED_CONDITIONS } @@ -107,7 +123,6 @@ public IcfgToChcPreferenceInitializer() { @Override protected BaseUltimatePreferenceItem[] initDefaultPreferences() { - return new BaseUltimatePreferenceItem[] { // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_CONCURRENCY_MODE, DEF_CONCURRENCY_MODE, DESC_CONCURRENCY_MODE, @@ -122,11 +137,10 @@ protected BaseUltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, PreferenceType.Boolean), - getSleepSetSettings() }; } - private UltimatePreferenceItemContainer getSleepSetSettings() { + private static UltimatePreferenceItemContainer getSleepSetSettings() { final var container = new UltimatePreferenceItemContainer("Sleep Set Reduction"); container.addItem(new UltimatePreferenceItem<>(LABEL_SLEEP_SET_REDUCTION, DEF_SLEEP_SET_REDUCTION, DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean)); @@ -134,6 +148,8 @@ private UltimatePreferenceItemContainer getSleepSetSettings() { DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean)); container.addItem(new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, PreferenceType.Boolean)); + container.addItem(new UltimatePreferenceItem<>(LABEL_PREFERENCE_ORDER, DEF_PREFERENCE_ORDER, + PreferenceType.Combo, PreferenceOrder.values())); container.addItem(new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, PreferenceType.Combo, ConditionalIndependence.values())); return container; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 3289b5b6399..0dadfbeb972 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -29,6 +29,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.ConditionalIndependence; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.PreferenceOrder; public class IcfgToChcPreferences { private final IPreferenceProvider mPrefs; @@ -77,6 +78,10 @@ public boolean explicitSleep() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); } + public PreferenceOrder preferenceOrder() { + return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_PREFERENCE_ORDER, PreferenceOrder.class); + } + public ConditionalIndependence conditionalIndependence() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONDITIONAL_INDEPENDENCE, ConditionalIndependence.class); From d18db27d183986e19bb155d7a887c6d7dbebf9f3 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 18:34:38 +0200 Subject: [PATCH 052/124] ChcSmtPrinter: use configured file name as prefix for automatic naming --- .../ultimate/chcprinter/ChcSmtPrinterObserver.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/trunk/source/ChcSmtPrinter/src/de/uni_freiburg/informatik/ultimate/chcprinter/ChcSmtPrinterObserver.java b/trunk/source/ChcSmtPrinter/src/de/uni_freiburg/informatik/ultimate/chcprinter/ChcSmtPrinterObserver.java index a40875f66f9..3396f79c561 100644 --- a/trunk/source/ChcSmtPrinter/src/de/uni_freiburg/informatik/ultimate/chcprinter/ChcSmtPrinterObserver.java +++ b/trunk/source/ChcSmtPrinter/src/de/uni_freiburg/informatik/ultimate/chcprinter/ChcSmtPrinterObserver.java @@ -167,8 +167,13 @@ private File openTempFile(final IElement root) { try { if (mServices.getPreferenceProvider(Activator.PLUGIN_ID) .getBoolean(ChcSmtPrinterPreferenceInitializer.UNIQUE_NAME_LABEL)) { + String prefix = mServices.getPreferenceProvider(Activator.PLUGIN_ID) + .getString(ChcSmtPrinterPreferenceInitializer.FILE_NAME_LABEL); + if (prefix.endsWith(".smt2")) { + prefix = prefix.substring(0, prefix.length() - ".smt2".length()); + } file = File.createTempFile( - "ChcSmtPrinter_" + new File(ILocation.getAnnotation(root).getFileName()).getName() + "_UID", + prefix + "_" + new File(ILocation.getAnnotation(root).getFileName()).getName() + "_UID", ".smt2", new File(path)); } else { filename = mServices.getPreferenceProvider(Activator.PLUGIN_ID) From 9bb48000b52d0746a9eafa030741d150295423eb Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 21:58:55 +0200 Subject: [PATCH 053/124] IndependenceChecker: properly substitute global variables --- .../concurrent/partialorder/IndependenceChecker.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index 357be9b691b..ccba6f29c16 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -44,6 +44,7 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcGlobalVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcLocalVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; @@ -127,6 +128,13 @@ private Term deinstantiate(final HornClauseBuilder clause, final ThreadInstance final var backSubstitution = new HashMap(); addBackSubstitutionMappings(clause, mLeftSubstitution, backSubstitution, thread1); addBackSubstitutionMappings(clause, mRightSubstitution, backSubstitution, thread2); + + for (final var global : mSymbolTable.getGlobals()) { + final var hcVar = new HcGlobalVar(global); + final var bodyVar = clause.getBodyVar(hcVar); + backSubstitution.put(global.getTermVariable(), bodyVar.getTermVariable()); + } + return Substitution.apply(mMgdScript, backSubstitution, term); } From b12de366c0be5a44a7f60b9354b82617efa91808 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 May 2023 21:59:19 +0200 Subject: [PATCH 054/124] better checking of CHCs --- .../plugins/icfgtochc/IcfgToChcObserver.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 5663c467f2b..9e3efc2ae9c 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -27,6 +27,7 @@ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import de.uni_freiburg.informatik.ultimate.core.lib.observers.BaseObserver; @@ -106,9 +107,7 @@ private void processIcfg(final IIcfg icfg) { || !IcfgUtils.getForksInLoop(icfg).isEmpty() || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC : "Unexpected non-linear clauses"; - final var bad = resultChcs.stream() - .filter(chc -> chc.constructFormula(mgdScript, false).getFreeVars().length != 0).findAny(); - assert bad.isEmpty() : bad; + assert checkFreeVariables(resultChcs, mgdScript) : "Some clauses have free variables"; final HornAnnot annot = new HornAnnot(icfg.getIdentifier(), mgdScript, hcSymbolTable, new ArrayList<>(resultChcs), true, chcCategoryInfo); @@ -117,6 +116,18 @@ private void processIcfg(final IIcfg icfg) { ModelUtils.copyAnnotations(icfg, mResult); } + private static boolean checkFreeVariables(final Collection system, final ManagedScript mgdScript) { + for (final var clause : system) { + final var formula = clause.constructFormula(mgdScript, false); + final var freevars = formula.getFreeVars(); + if (freevars.length > 0) { + assert false : "free variables " + Arrays.toString(freevars) + " in clause " + clause; + return false; + } + } + return true; + } + private static boolean isReturnReachable(final IIcfg icfg) { return new IcfgEdgeIterator(icfg).asStream().anyMatch(IIcfgSummaryTransition.class::isInstance); } From 621497e98e83f8463a0d4950763a42bcb69f9bdb Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 26 May 2023 11:03:06 +0200 Subject: [PATCH 055/124] fix copy-paste error --- .../partialorder/SleepSetThreadModularHornClauseProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 0ad0cac89dc..5964bf36f8a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -132,7 +132,7 @@ protected HornClauseBuilder buildInductivityClause(final IcfgEdge transition, // update sleep variables for (final var instance : mInstances) { - if (preds.containsKey(updatedThread)) { + if (preds.containsKey(instance)) { // no update of sleep variable continue; } From fe2097d14844500a2ca2549c8e1a957903853f24 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 26 May 2023 11:08:31 +0200 Subject: [PATCH 056/124] add setting to allow semi-commutativity (default: true) --- .../ultimate/plugins/icfgtochc/IcfgToChcObserver.java | 2 +- .../preferences/IcfgToChcPreferenceInitializer.java | 5 +++++ .../plugins/icfgtochc/preferences/IcfgToChcPreferences.java | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 9e3efc2ae9c..b3c7a3fe855 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -162,7 +162,7 @@ private Collection getHornClauses(IIcfg icfg, final Ma } private ISymbolicIndependenceRelation getIndependence(final IIcfg icfg, final ManagedScript mgdScript) { - final boolean symmetric = true; + final boolean symmetric = !mPrefs.useSemicommutativity(); final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, symmetric); switch (mPrefs.conditionalIndependence()) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 69fe7909b8d..f4d23113601 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -106,6 +106,9 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize public static final String LABEL_CONDITIONAL_INDEPENDENCE = "Conditional Independence"; public static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; + public static final String LABEL_SEMICOMMUTATIVITY = "Use semi-commutativity"; + public static final boolean DEF_SEMICOMMUTATIVITY = true; + public enum PreferenceOrder { SEQ_COMP, LOCKSTEP } @@ -152,6 +155,8 @@ private static UltimatePreferenceItemContainer getSleepSetSettings() { PreferenceType.Combo, PreferenceOrder.values())); container.addItem(new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, PreferenceType.Combo, ConditionalIndependence.values())); + container.addItem( + new UltimatePreferenceItem<>(LABEL_SEMICOMMUTATIVITY, DEF_SEMICOMMUTATIVITY, PreferenceType.Boolean)); return container; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 0dadfbeb972..fe305fb85d0 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -86,4 +86,8 @@ public ConditionalIndependence conditionalIndependence() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONDITIONAL_INDEPENDENCE, ConditionalIndependence.class); } + + public boolean useSemicommutativity() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SEMICOMMUTATIVITY); + } } From d5022d5e9b24534c3b625c6a8ac71c1ac274db00 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 31 May 2023 11:28:30 +0200 Subject: [PATCH 057/124] prepare evaluation --- .../default/benchexec/sleep-threadmodular.xml | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 releaseScripts/default/benchexec/sleep-threadmodular.xml diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml new file mode 100644 index 00000000000..5da9da01f9f --- /dev/null +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -0,0 +1,48 @@ + + + ${inputfile_path}/CHC_*.smt2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ../../../trunk/examples/threadmodular/regression/*/*.yml + ../../../trunk/examples/svcomp/properties/unreach-call.prp + + \ No newline at end of file From cab6167ce2391e67e59302329983cdbfc084bf56 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 31 May 2023 11:32:43 +0200 Subject: [PATCH 058/124] fix usage of benchexec variables --- releaseScripts/default/benchexec/sleep-threadmodular.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 5da9da01f9f..41f9d2a8973 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -1,9 +1,9 @@ - ${inputfile_path}/CHC_*.smt2 + ${taskdef_path}/CHC_*.smt2 + From b79fc11d646c5418ee548bb10527e068f2354129 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 31 May 2023 17:25:29 +0200 Subject: [PATCH 059/124] add golem during build --- releaseScripts/default/makeZip.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releaseScripts/default/makeZip.sh b/releaseScripts/default/makeZip.sh index adafdb93068..805b4e8cdef 100755 --- a/releaseScripts/default/makeZip.sh +++ b/releaseScripts/default/makeZip.sh @@ -48,7 +48,7 @@ if [ "$2" == "linux" ]; then echo "Building .zip for linux..." ARCH="linux" ARCHPATH="products/CLI-E4/linux/gtk/x86_64" - ADDS+=("adds/z3" "adds/cvc4nyu" "adds/cvc4" "adds/mathsat") + ADDS+=("adds/z3" "adds/cvc4nyu" "adds/cvc4" "adds/mathsat" "adds/golem") elif [ "$2" == "win32" ]; then echo "Building .zip for win32..." ARCH="win32" From 30509f967a259899c3d17e25b1ce1777af0053d2 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 31 May 2023 17:26:00 +0200 Subject: [PATCH 060/124] TreeAutomizer: must not use Z3 (no longer supports interpolation) --- releaseScripts/default/benchexec/sleep-threadmodular.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 41f9d2a8973..c325a66db38 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -35,6 +35,7 @@ + From 645efe7f51fb341dede3cd5950a2f22405dd04ec Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 31 May 2023 17:46:34 +0200 Subject: [PATCH 061/124] temporarily disable check that crashes UniHorn --- .../coreplugin/services/ModelTranslationContainer.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java index 7a0a60c4de5..64888c17525 100644 --- a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java +++ b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java @@ -60,9 +60,11 @@ public void addTranslator(final ITranslator 0) { final ITranslator last = mTranslationSequence.getLast(); if (!isAllowedNext(last, translator)) { - throw new IllegalArgumentException( - "The supplied ITranslator is not compatible with the existing ones. It has to be compatible with " - + last + ", but it is " + translator); + // TODO a temporary change to allow UniHorn to run on generated CHCs + // throw new IllegalArgumentException( + // "The supplied ITranslator is not compatible with the existing ones. It has to be compatible with " + // + last + ", but it is " + translator); + return; } } mTranslationSequence.addLast(translator); From ff2fe8766f4565c79bcb155b21cb08dc19cbd358 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 6 Jun 2023 15:21:34 +0200 Subject: [PATCH 062/124] improve Z3 CHC integration - ChcSolver: create a fresh Z3 instance - SmtChcScript: support clauses built with a different script than the backend solver, by transferring them if necessary. Backtranslation of models is still missing. - ChcSolver: allow specifying a timeout --- .../plugins/chcsolver/ChcSolverObserver.java | 38 +++- .../ChcSolverPreferenceInitializer.java | 7 + .../preferences/ChcSolverPreferences.java | 4 + .../ultimate/lib/chc/ChcTransferrer.java | 205 ++++++++++++++++++ .../ultimate/lib/chc/SmtChcScript.java | 28 ++- 5 files changed, 275 insertions(+), 7 deletions(-) create mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java index 7a8f66a40d5..04f84aafadb 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java @@ -45,6 +45,11 @@ import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcSatResult; import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcUnknownResult; import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcUnsatResult; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.solverbuilder.SolverBuilder; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.solverbuilder.SolverBuilder.ExternalSolver; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.solverbuilder.SolverBuilder.SolverMode; +import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.logic.Model; import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; import de.uni_freiburg.informatik.ultimate.plugins.chcsolver.preferences.ChcSolverPreferences; @@ -74,7 +79,13 @@ public boolean process(final IElement root) throws Throwable { final IChcScript chcScript = getBackend(annot); configureBackend(chcScript); - final var satisfiability = chcScript.solve(annot.getSymbolTable(), annot.getHornClauses()); + final LBool satisfiability; + if (mPrefs.getTimeout() > 0) { + satisfiability = chcScript.solve(annot.getSymbolTable(), annot.getHornClauses(), mPrefs.getTimeout()); + } else { + satisfiability = chcScript.solve(annot.getSymbolTable(), annot.getHornClauses()); + } + final IResult result = createResult(chcScript, satisfiability); mServices.getResultService().reportResult(Activator.PLUGIN_ID, result); @@ -90,9 +101,7 @@ private IChcScript getBackend(final HornAnnot annotation) { case ELDARICA: return new EldaricaChcScript(mServices, annotation.getScript().getScript()); case Z3: - // We use the script given in the annotation. For this to work, that script should use Z3. - // To use a fresh Z3 instance for solving instead, one has to transfer the Horn clause terms to that script. - return new SmtChcScript(annotation.getScript()); + return createZ3Backend(); case TREEAUTOMIZER: // NOTE: TAPreferences (last parameter) currently unused by TreeAutomizer return new TreeAutomizerChcScript(mServices, annotation.getScript(), null); @@ -103,6 +112,27 @@ private IChcScript getBackend(final HornAnnot annotation) { } } + private SmtChcScript createZ3Backend() { + // We use a fresh Z3 instance to solve the system. + // In typical toolchains, the solver in the HornAnnot is often unsuitable: + // + // (1) It may not be a Z3 instance. + // (2) The query timeout may be very low. + // (3) Another logic may have been set. + // + // SmtChcScript internally detects that a different script was used, and transfers the terms. + + final var timeout = mPrefs.getTimeout() > 0 ? mPrefs.getTimeout() : -1L; + final var mode = mPrefs.produceModels() ? SolverMode.External_ModelsMode : SolverMode.External_DefaultMode; + final var settings = SolverBuilder.constructSolverSettings().setSolverMode(mode) + .setUseExternalSolver(ExternalSolver.Z3, Logics.HORN, timeout); + + final var solver = SolverBuilder.buildAndInitializeSolver(mServices, settings, "Z3-CHC"); + final var mgdSolver = new ManagedScript(mServices, solver); + + return new SmtChcScript(mgdSolver); + } + private void configureBackend(final IChcScript backend) { if (backend.supportsModelProduction()) { backend.produceModels(mPrefs.produceModels()); diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java index 7be255e1b5c..faa51061e31 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java @@ -46,6 +46,11 @@ public enum SolverBackend { public static final String LABEL_CHC_BACKEND = "CHC solver backend"; private static final SolverBackend DEF_CHC_BACKEND = SolverBackend.ELDARICA; + public static final String LABEL_SOLVER_TIMEOUT = "Timeout"; + private static final String DESC_SOLVER_TIMEOUT = + "Timeout for solving an entire CHC system (in ms). 0 means no timeout."; + private static final int DEF_SOLVER_TIMEOUT = 0; + public static final String LABEL_PRODUCE_MODEL = "Produce CHC model if query is SAT"; private static final boolean DEF_PRODUCE_MODEL = true; @@ -64,6 +69,8 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { return new UltimatePreferenceItem[] { new UltimatePreferenceItem<>(LABEL_CHC_BACKEND, DEF_CHC_BACKEND, PreferenceType.Combo, SolverBackend.values()), + new UltimatePreferenceItem<>(LABEL_SOLVER_TIMEOUT, DEF_SOLVER_TIMEOUT, DESC_SOLVER_TIMEOUT, + PreferenceType.Integer), new UltimatePreferenceItem<>(LABEL_PRODUCE_MODEL, DEF_PRODUCE_MODEL, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_PRODUCE_DERIVATION, DEF_PRODUCE_DERIVATION, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_PRODUCE_UNSAT_CORES, DEF_PRODUCE_UNSAT_CORES, diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java index 62d4f81fe57..4a98f94dd64 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java @@ -52,4 +52,8 @@ public boolean produceDerivation() { public boolean produceUnsatCore() { return mPrefs.getBoolean(ChcSolverPreferenceInitializer.LABEL_PRODUCE_UNSAT_CORES); } + + public long getTimeout() { + return mPrefs.getInt(ChcSolverPreferenceInitializer.LABEL_SOLVER_TIMEOUT); + } } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java new file mode 100644 index 00000000000..c1282353bd6 --- /dev/null +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE CHC Library. + * + * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE CHC Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE CHC Library. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE CHC Library, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE CHC Library grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.lib.chc; + +import java.util.List; +import java.util.Set; +import java.util.function.BiFunction; +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.scripttransfer.TermTransferrer; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.logic.Model; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Sort; +import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; + +/** + * A class to transfer CHC systems between scripts, and to transfer back the results of CHC satisfiability checks. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + */ +public class ChcTransferrer { + private final Script mOriginalScript; + private final ManagedScript mTargetScript; + + private final HcSymbolTable mOriginalSymbolTable; + private final HcSymbolTable mTargetSymbolTable; + + private final TermTransferrer mTransferrer; + private final BidirectionalMap mPredMapping = new BidirectionalMap<>(); + private final BidirectionalMap mClauseMapping = new BidirectionalMap<>(); + + public ChcTransferrer(final Script originalScript, final ManagedScript targetScript, + final HcSymbolTable symbolTable) { + mOriginalScript = originalScript; + mTargetScript = targetScript; + mTransferrer = new TermTransferrer(originalScript, targetScript.getScript()); + + mOriginalSymbolTable = symbolTable; + mTargetSymbolTable = transfer(symbolTable); + } + + public HornAnnot transfer(final HornAnnot annot) { + assert annot.getSymbolTable() == mOriginalSymbolTable; + final var clauses = annot.getHornClauses().stream().map(this::transfer).collect(Collectors.toList()); + return new HornAnnot(annot.getFileName(), mTargetScript, mTargetSymbolTable, clauses, annot.hasCheckSat(), + annot.getChcCategoryInfo()); + } + + private HcSymbolTable transfer(final HcSymbolTable symbolTable) { + final var transferredTable = new HcSymbolTable(mTargetScript); + // TODO transfer components? + return transferredTable; + } + + public HcPredicateSymbol transfer(final HcPredicateSymbol predicate) { + final var sorts = + predicate.getParameterSorts().stream().map(mTransferrer::transferSort).collect(Collectors.toList()); + return mTargetSymbolTable.getOrConstructHornClausePredicateSymbol(predicate.getName(), sorts); + } + + public T transfer(final T var) { + if (var instanceof HcBodyAuxVar) { + throw new UnsupportedOperationException("HcBodyAuxVar not yet supported"); + } + if (var instanceof HcBodyVar) { + return (T) transfer((HcBodyVar) var); + } + if (var instanceof HcHeadVar) { + return (T) transfer((HcHeadVar) var); + } + throw new AssertionError( + "Unknown type of variable: " + (var == null ? "null" : var.getClass().getSimpleName())); + } + + public HcBodyVar transfer(final HcBodyVar var) { + return transfer(var, mTargetSymbolTable::getOrConstructBodyVar); + } + + public HcHeadVar transfer(final HcHeadVar var) { + return transfer(var, mTargetSymbolTable::getOrConstructHeadVar); + } + + private T transfer(final T var, final BiFunction getOrConstruct) { + final var copy = getOrConstruct.apply(var, mTransferrer.transferSort(var.getSort())); + final var oldMapping = mTransferrer.getTransferMapping().get(var.getTermVariable()); + if (oldMapping != null && oldMapping != copy.getTermVariable()) { + throw new IllegalStateException("Variable already mapped: " + var); + } + mTransferrer.getTransferMapping().put(var.getTermVariable(), copy.getTermVariable()); + return copy; + + } + + public HornClause transfer(final HornClause clause) { + return mClauseMapping.computeIfAbsent(clause, c -> { + final var bodyVars = clause.getBodyVariables().stream().map(this::transfer).collect(Collectors.toSet()); + final List headVars; + if (!clause.isHeadFalse()) { + headVars = + clause.getTermVariablesForHeadPred().stream().map(this::transfer).collect(Collectors.toList()); + + } else { + headVars = null; + } + + final var constraint = transfer(clause.getConstraintFormula()); + final var bodyPreds = clause.getBodyPredicates().stream().map(this::transfer).collect(Collectors.toList()); + final var bodyArgs = clause.getBodyPredToArgs().stream() + .map(args -> args.stream().map(this::transfer).collect(Collectors.toList())) + .collect(Collectors.toList()); + if (clause.isHeadFalse()) { + return new HornClause(mTargetScript, mTargetSymbolTable, constraint, bodyPreds, bodyArgs, bodyVars); + } + + final var head = transfer(clause.getHeadPredicate()); + return new HornClause(mTargetScript, mTargetSymbolTable, constraint, head, headVars, bodyPreds, bodyArgs, + bodyVars); + }); + } + + private Term transfer(final Term term) { + return mTransferrer.transform(term); + } + + public ChcSolution transferBack(final ChcSolution solution) { + switch (solution.getSatisfiability()) { + case UNKNOWN: + // nothing to transfer + return solution; + case SAT: + final var originalModel = solution.getModel(); + final var model = originalModel == null ? null : transferBack(originalModel); + return ChcSolution.sat(model); + case UNSAT: + final var originalDerivation = solution.getDerivation(); + final var derivation = originalDerivation == null ? null : transferBack(originalDerivation); + final var originalUnsatCore = solution.getUnsatCore(); + final var unsatCore = originalUnsatCore == null ? null : transferBack(originalUnsatCore); + return ChcSolution.unsat(derivation, unsatCore); + } + throw new AssertionError("unknown satisfiability value: " + solution.getSatisfiability()); + } + + public Model transferBack(final Model model) { + // TODO + throw new UnsupportedOperationException("not yet implemented"); + } + + public Derivation transferBack(final Derivation derivation) { + final var predicate = transferBack(derivation.getPredicate()); + final var arguments = derivation.getArguments().stream().map(this::transferBack).collect(Collectors.toList()); + final var clause = transferBack(derivation.getClause()); + final var children = derivation.getChildren().stream().map(this::transferBack).collect(Collectors.toList()); + return new Derivation(predicate, arguments, clause, children); + } + + public Set transferBack(final Set unsatCore) { + return unsatCore.stream().map(this::transferBack).collect(Collectors.toSet()); + } + + public HornClause transferBack(final HornClause clause) { + if (!mClauseMapping.containsValue(clause)) { + throw new IllegalArgumentException("Clause was not transferred by this instance: " + clause); + } + return mClauseMapping.inverse().get(clause); + } + + public HcPredicateSymbol transferBack(final HcPredicateSymbol predicate) { + if (!mPredMapping.containsValue(predicate)) { + throw new IllegalArgumentException("Predicate symbol was not transferred by this instance: " + predicate); + } + return mPredMapping.inverse().get(predicate); + } + + private Term transferBack(final Term term) { + // TODO + throw new UnsupportedOperationException("not yet implemented"); + } +} diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java index 3089a118290..42174734667 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java @@ -31,6 +31,7 @@ import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.logic.ApplicationTerm; @@ -57,6 +58,7 @@ public class SmtChcScript implements IChcScript, AutoCloseable { private boolean mProduceUnsatCores; private boolean mIsPushed; + private ChcTransferrer mTransferrer; private Map mName2Clause; public SmtChcScript(final ManagedScript mgdScript) { @@ -76,9 +78,18 @@ public LBool solve(final HcSymbolTable symbolTable, final List syste mIsPushed = true; mMgdScript.unlock(this); + + final List assertedSystem; + if (mMgdScript == symbolTable.getManagedScript()) { + assertedSystem = system; + } else { + mTransferrer = new ChcTransferrer(symbolTable.getManagedScript().getScript(), mMgdScript, symbolTable); + assertedSystem = system.stream().map(mTransferrer::transfer).collect(Collectors.toList()); + } + final var asserter = new ChcAsserter(mMgdScript, getScript(), mProduceUnsatCores, ADD_COMMENTS, DECLARE_FUNCTIONS); - asserter.assertClauses(symbolTable, system); + asserter.assertClauses(symbolTable, assertedSystem); mMgdScript.lock(this); mName2Clause = asserter.getName2Clause(); @@ -114,7 +125,14 @@ public void produceModels(final boolean enable) { @Override public Optional getModel() { - return Optional.ofNullable(getScript().getModel()); + final var model = getScript().getModel(); + if (model == null) { + return Optional.empty(); + } + if (mTransferrer == null) { + return Optional.of(model); + } + return Optional.of(mTransferrer.transferBack(model)); } @Override @@ -150,13 +168,17 @@ public Optional> getUnsatCore() { for (final var term : core) { assert term instanceof ApplicationTerm : "Expected only term names in UNSAT core, but got " + term; final var name = ((ApplicationTerm) term).getFunction().getName(); - result.add(mName2Clause.get(name)); + final var assertedClause = mName2Clause.get(name); + final var originalClause = + mTransferrer == null ? assertedClause : mTransferrer.transferBack(assertedClause); + result.add(originalClause); } return Optional.of(result); } private void reset() { mName2Clause = null; + mTransferrer = null; if (mIsPushed) { mMgdScript.pop(this, 1); } From 1f01ed6afdf0a8b0a8640238a164df6272a52deb Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 7 Jun 2023 10:06:00 +0200 Subject: [PATCH 063/124] SmtChcScript: avoid push/pop push/pop leads to more UNKNOWN results for Z3. Instead, we use reset. --- .../ultimate/lib/chc/SmtChcScript.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java index 42174734667..b754e4c774b 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java @@ -35,6 +35,7 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.logic.ApplicationTerm; +import de.uni_freiburg.informatik.ultimate.logic.Logics; import de.uni_freiburg.informatik.ultimate.logic.Model; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Script; @@ -55,9 +56,9 @@ public class SmtChcScript implements IChcScript, AutoCloseable { private static final boolean DECLARE_FUNCTIONS = false; private final ManagedScript mMgdScript; + private boolean mProduceModels; private boolean mProduceUnsatCores; - private boolean mIsPushed; private ChcTransferrer mTransferrer; private Map mName2Clause; @@ -74,9 +75,6 @@ public Script getScript() { @Override public LBool solve(final HcSymbolTable symbolTable, final List system) { reset(); - mMgdScript.push(this, 1); - mIsPushed = true; - mMgdScript.unlock(this); final List assertedSystem; @@ -120,7 +118,7 @@ public boolean supportsModelProduction() { @Override public void produceModels(final boolean enable) { - getScript().setOption(SMTLIBConstants.PRODUCE_MODELS, enable); + mProduceModels = enable; } @Override @@ -157,7 +155,6 @@ public boolean supportsUnsatCores() { @Override public void produceUnsatCores(final boolean enable) { - getScript().setOption(SMTLIBConstants.PRODUCE_UNSAT_CORES, enable); mProduceUnsatCores = enable; } @@ -179,9 +176,11 @@ public Optional> getUnsatCore() { private void reset() { mName2Clause = null; mTransferrer = null; - if (mIsPushed) { - mMgdScript.pop(this, 1); - } + + getScript().reset(); + getScript().setLogic(Logics.HORN); + getScript().setOption(SMTLIBConstants.PRODUCE_MODELS, mProduceModels); + getScript().setOption(SMTLIBConstants.PRODUCE_UNSAT_CORES, mProduceUnsatCores); } @Override From 27c56ed58b70aad5e2a2df4f5b5ba84c745a1f2c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 8 Jun 2023 09:02:14 +0200 Subject: [PATCH 064/124] fix typos in method names --- .../plugins/chctoboogie/GenerateBoogieAstHelper.java | 2 +- .../ultimate/plugins/chctoboogie/GenerateGotoBoogieAst.java | 2 +- .../uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java | 2 +- .../informatik/ultimate/lib/chc/HcSymbolTable.java | 2 +- .../informatik/ultimate/lib/chc/HornUtilConstants.java | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateBoogieAstHelper.java b/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateBoogieAstHelper.java index 8c53b898e97..9dbca46b284 100644 --- a/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateBoogieAstHelper.java +++ b/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateBoogieAstHelper.java @@ -262,7 +262,7 @@ public Expression getDummyArgForArraySort(final Sort sort) { String varName = mArraySortToDummyVarName.get(sort); if (varName == null) { final String dummyArrayPrefix = "#dummy~"; - varName = dummyArrayPrefix + HornUtilConstants.sanitzeSortNameForBoogie(sort); + varName = dummyArrayPrefix + HornUtilConstants.sanitizeSortNameForBoogie(sort); mArraySortToDummyVarName.put(sort, varName); } return ExpressionFactory.constructIdentifierExpression(mLocation, getType(sort), varName, DeclarationInformation.DECLARATIONINFO_GLOBAL); diff --git a/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateGotoBoogieAst.java b/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateGotoBoogieAst.java index f3354878f9f..0f5cea114e6 100644 --- a/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateGotoBoogieAst.java +++ b/trunk/source/ChcToBoogie/src/de/uni_freiburg/informatik/ultimate/plugins/chctoboogie/GenerateGotoBoogieAst.java @@ -497,7 +497,7 @@ Expression getArgumentVarExp(final int index, final Sort sort) { private boolean constructArgumentVarId(final int index, final Sort sort) { String result = mIndexToSortToGotoProcArgId.get(index, sort); if (result == null) { - result = "gpav_" + index + "_" + HornUtilConstants.sanitzeSortNameForBoogie(sort); + result = "gpav_" + index + "_" + HornUtilConstants.sanitizeSortNameForBoogie(sort); mIndexToSortToGotoProcArgId.put(index, sort, result); return true; } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java index 450c99a65f0..d525ae9191e 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcPredVar.java @@ -24,7 +24,7 @@ public abstract class HcPredVar extends HcVar { super(globallyUniqueId, mgdScript.variable(globallyUniqueId, sort), ProgramVarUtils.constructDefaultConstant(mgdScript, lockOwner, sort, globallyUniqueId), ProgramVarUtils.constructPrimedConstant(mgdScript, lockOwner, sort, globallyUniqueId), headNotBody, - HornUtilConstants.sanitzePredName(procName)); + HornUtilConstants.sanitizePredName(procName)); mIndex = index; } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index a44155b43d1..193311f58f0 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -419,7 +419,7 @@ public ILocation getLocation(final IProgramVar pv) { } public String getMethodNameForPredSymbol(final HcPredicateSymbol predSym) { - return HornUtilConstants.sanitzePredName(predSym.getName()); + return HornUtilConstants.sanitizePredName(predSym.getName()); } public List getHcHeadVarsForPredSym(final HcPredicateSymbol bodySymbol, diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java index a05281d3395..d762a16b26e 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornUtilConstants.java @@ -60,7 +60,7 @@ private HornUtilConstants() { public static String computeNameForHcVar(final String prefix, final HcPredicateSymbol predSym, final int index, final String identifier) { - final String name = HornUtilConstants.sanitzePredName(predSym.getName()); + final String name = HornUtilConstants.sanitizePredName(predSym.getName()); final String identifierString = identifier.replaceAll(" ", "_").replaceAll("[()]", ""); return String.format("%s_%s_%s_%d", prefix, name, identifierString, index); } @@ -76,7 +76,7 @@ public static String computeNameForHcVar(final String prefix, final String ident * @param headPredSymProcNameRaw * @return */ - public static String sanitzePredName(final String headPredSymProcNameRaw) { + public static String sanitizePredName(final String headPredSymProcNameRaw) { assert !headPredSymProcNameRaw.contains(".CLN") : "naming might clash"; assert !headPredSymProcNameRaw.contains(".DLR") : "naming might clash"; assert !headPredSymProcNameRaw.contains(".AT") : "naming might clash"; @@ -86,7 +86,7 @@ public static String sanitzePredName(final String headPredSymProcNameRaw) { .replaceAll("\\$", ".DLR").replaceAll(":", ".CLN"); } - public static String sanitzeSortNameForBoogie(final Sort sort) { + public static String sanitizeSortNameForBoogie(final Sort sort) { assert !sort.toString().contains(".OP") : "naming might clash"; assert !sort.toString().contains(".CP") : "naming might clash"; return sort.toString().replaceAll("\\(", ".OP").replaceAll("\\)", ".CP").replaceAll(" ", "_"); From 7dddfbb61321e0830090c5a384d3d82015ed829c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 8 Jun 2023 09:10:33 +0200 Subject: [PATCH 065/124] bugfix: record HcBodyVar for each term variable --- .../informatik/ultimate/lib/chc/HcSymbolTable.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index 193311f58f0..241619094b6 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -337,6 +337,7 @@ public HcBodyVar getOrConstructBodyVar(final Object identifier, final Sort sort) final var result = new HcBodyVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, mManagedScript, this); mManagedScript.unlock(this); + mTermVarToProgramVar.put(result.getTermVariable(), result); return result; }); } @@ -392,7 +393,7 @@ public Map getSmtFunction2BoogieFunction() { @Override public IProgramVar getProgramVar(final TermVariable tv) { final IProgramVar result = mTermVarToProgramVar.get(tv); - assert result != null; + assert result != null : "No IProgramVar found for term variable: " + tv; return result; } From 15814dd4be1574fb49d0ab918d1407d1bd8eec9f Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 8 Jun 2023 09:18:25 +0200 Subject: [PATCH 066/124] construct HcHeadVars that reference the proper predicate and index Our own solvers (UniHorn and TreeAutomizer) heavily rely on the predicate and index stored in HcPredVars. Thus they fail on the clauses generated so far. This commit corrects the creation of HcHeadVars. --- .../concurrent/HornClauseBuilder.java | 7 ++++- .../icfgtochc/concurrent/PredicateInfo.java | 3 +- .../ultimate/lib/chc/ChcTransferrer.java | 28 +++++++++++++++++-- .../ultimate/lib/chc/HcSymbolTable.java | 16 +---------- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 37b178ddd4b..9eef5ef7916 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -92,7 +92,12 @@ public HcHeadVar getHeadVar(final IHcReplacementVar variable) { assert mHeadPredicate != null : "Clause does not have head predicate"; assert mHeadPredicate.hasParameter(variable) : "Predicate " + mHeadPredicate.getPredicate() + " does not have parameter " + variable; - return mSymbolTable.getOrConstructHeadVar(variable, variable.getSort()); + + final int index = mHeadPredicate.getParameters().indexOf(variable); + assert index >= 0 && index < mHeadPredicate.getParamCount() : "Invalid parameter index for " + variable + + " in predicate " + mHeadPredicate.getPredicate(); + + return mSymbolTable.getOrConstructHeadVar(mHeadPredicate.getPredicate(), index, variable.getSort(), variable); } public void differentBodyHeadVar(final IHcReplacementVar variable) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java index 08a271885d8..00a3da3eabb 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/PredicateInfo.java @@ -26,7 +26,6 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent; -import java.util.Collection; import java.util.List; import java.util.Objects; @@ -45,7 +44,7 @@ public HcPredicateSymbol getPredicate() { return mPredicate; } - public Collection getParameters() { + public List getParameters() { return mParameters; } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index c1282353bd6..29e628b6cc0 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -99,14 +99,37 @@ public T transfer(final T var) { } public HcBodyVar transfer(final HcBodyVar var) { - return transfer(var, mTargetSymbolTable::getOrConstructBodyVar); + return transferOld(var, mTargetSymbolTable::getOrConstructBodyVar); } public HcHeadVar transfer(final HcHeadVar var) { return transfer(var, mTargetSymbolTable::getOrConstructHeadVar); } - private T transfer(final T var, final BiFunction getOrConstruct) { + private interface IHcVarConstructor { + T getOrConstruct(HcPredicateSymbol pred, int index, Sort sort, Object identifier); + } + + private T transfer(final T variable, final IHcVarConstructor constructor) { + final var optPredicate = mPredMapping.entrySet().stream() + .filter(e -> HornUtilConstants.sanitizePredName(e.getKey().getName()).equals(variable.getProcedure())) + .findAny(); + assert optPredicate.isPresent() : "Could not find predicate for " + variable; + final var predicate = optPredicate.get().getValue(); + + final var sort = mTransferrer.transferSort(variable.getSort()); + final var copy = constructor.getOrConstruct(predicate, variable.getIndex(), sort, variable); + + final var oldMapping = mTransferrer.getTransferMapping().get(variable.getTermVariable()); + if (oldMapping != null && oldMapping != copy.getTermVariable()) { + throw new IllegalStateException("Variable already mapped: " + variable); + } + mTransferrer.getTransferMapping().put(variable.getTermVariable(), copy.getTermVariable()); + return copy; + } + + @Deprecated + private T transferOld(final T var, final BiFunction getOrConstruct) { final var copy = getOrConstruct.apply(var, mTransferrer.transferSort(var.getSort())); final var oldMapping = mTransferrer.getTransferMapping().get(var.getTermVariable()); if (oldMapping != null && oldMapping != copy.getTermVariable()) { @@ -114,7 +137,6 @@ private T transfer(final T var, final BiFunction g } mTransferrer.getTransferMapping().put(var.getTermVariable(), copy.getTermVariable()); return copy; - } public HornClause transfer(final HornClause clause) { diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java index 241619094b6..5ab311d3f79 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HcSymbolTable.java @@ -59,7 +59,6 @@ public class HcSymbolTable extends DefaultIcfgSymbolTable implements ITerm2Expre final Map mVersionsMap; private final Map mBodyVars = new HashMap<>(); - private final Map mHeadVars = new HashMap<>(); private final NestedMap3 mPredSymNameToIndexToSortToHcHeadVar; private final NestedMap3 mPredSymNameToIndexToSortToHcBodyVar; private final Map mTermVariableToHcBodyAuxVar; @@ -290,20 +289,6 @@ public HcHeadVar getOrConstructHeadVar(final HcPredicateSymbol predSym, final in return getOrConstructHeadVar(predSym, index, pv.getSort(), pv); } - public HcHeadVar getOrConstructHeadVar(final Object identifier, final Sort sort) { - return mHeadVars.computeIfAbsent(identifier, id -> { - final Sort transferredSort = transferSort(sort); - final String globallyUniqueId = - HornUtilConstants.computeNameForHcVar(HornUtilConstants.HEADVARPREFIX, id.toString()); - mManagedScript.lock(this); - final var result = new HcHeadVar(globallyUniqueId, DUMMY_PRED_NAME, DUMMY_PRED_INDEX, transferredSort, - mManagedScript, this); - mManagedScript.unlock(this); - mTermVarToProgramVar.put(result.getTermVariable(), result); - return result; - }); - } - public HcBodyVar getOrConstructBodyVar(final HcPredicateSymbol predSym, final int index, final Sort sort, final Object identfier) { final Sort transferredSort = transferSort(sort); @@ -328,6 +313,7 @@ public HcBodyVar getOrConstructBodyVar(final HcPredicateSymbol predSym, final in return getOrConstructBodyVar(predSym, index, pv.getSort(), pv); } + @Deprecated public HcBodyVar getOrConstructBodyVar(final Object identifier, final Sort sort) { return mBodyVars.computeIfAbsent(identifier, id -> { final Sort transferredSort = transferSort(sort); From dca59feabafc2057d95efcd162767a45ea577f9c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 8 Jun 2023 10:22:57 +0200 Subject: [PATCH 067/124] eldarica: properly handle scala objects --- .../ultimate/lib/chc/eldarica/EldaricaChcScript.java | 4 ++-- .../informatik/ultimate/lib/chc/eldarica/Translator.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java index 9932ad1d324..18ac2a765cf 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java @@ -129,7 +129,7 @@ public LBool solve(final HcSymbolTable symbolTable, final java.util.List actualTimeout.get())) { // Nasty hack to trick java into throwing TimeoutException, a checked exception. // (This is necessary, because scala does not declare checked exceptions.) - throwUnchecked(new lazabs.Main.TimeoutException$()); + throwUnchecked(lazabs.Main.TimeoutException$.MODULE$); } return scala.runtime.BoxedUnit.UNIT; } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java index 1418f0fcd3b..e895fb5d84c 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java @@ -139,10 +139,10 @@ private Predicate createPredicate(final HcPredicateSymbol pred) { private ap.types.Sort translateSort(final Sort sort) { if (SmtSortUtils.isIntSort(sort)) { - return new ap.types.Sort.Integer$(); + return ap.types.Sort.Integer$.MODULE$; } if (SmtSortUtils.isBoolSort(sort)) { - return new ap.types.Sort.MultipleValueBool$(); + return ap.types.Sort.MultipleValueBool$.MODULE$; } if (SmtSortUtils.isArraySort(sort)) { return getArrayTheory(sort).sort(); @@ -169,7 +169,7 @@ private ExtArray getArrayTheory(final Sort arraySort) { public IFormula translateFormula(final Term term) { final var expr = translateExpression(term); if (expr instanceof ITerm) { - return new ap.types.Sort.MultipleValueBool$().isTrue((ITerm) expr); + return ap.types.Sort.MultipleValueBool$.MODULE$.isTrue((ITerm) expr); } return (IFormula) translateExpression(term); } @@ -177,7 +177,7 @@ public IFormula translateFormula(final Term term) { public ITerm translateTerm(final Term term) { final var expr = translateExpression(term); if (expr instanceof IFormula) { - final var bool = new ap.types.Sort.MultipleValueBool$(); + final var bool = ap.types.Sort.MultipleValueBool$.MODULE$; return IExpression.ite((IFormula) expr, bool.True(), bool.False()); } return (ITerm) translateExpression(term); From 7573845932786a91e6e9d4d8b27408aac62c2125 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 8 Jun 2023 12:15:20 +0200 Subject: [PATCH 068/124] fix SMT solver setting: TreeAutomizer ignores its own settings --- releaseScripts/default/benchexec/sleep-threadmodular.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index c325a66db38..d2f2d9fb903 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -35,7 +35,7 @@ - + From a13f12b084de4b50ffc47cd038d5c14ab54fe97b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 9 Jun 2023 10:31:08 +0200 Subject: [PATCH 069/124] add an IChcScript to invoke eldarica via command line The current EldaricaChcScript does not work well, we are using the wrong entry point to eldarica. Until we have figured out the right one, invoking eldarica via command line will seemingly give better results. This is a temporary solution. We should ideally find the right entry point, or at least some other way that is not this platform-dependent. --- .../plugins/chcsolver/ChcSolverObserver.java | 5 +- .../lib/chc/EldaricaCliChcScript.java | 185 ++++++++++++++++++ 2 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java index 04f84aafadb..a3e47198161 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java @@ -35,13 +35,13 @@ import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.ChcSolution; import de.uni_freiburg.informatik.ultimate.lib.chc.Derivation; +import de.uni_freiburg.informatik.ultimate.lib.chc.EldaricaCliChcScript; import de.uni_freiburg.informatik.ultimate.lib.chc.GolemChcScript; import de.uni_freiburg.informatik.ultimate.lib.chc.HornAnnot; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClauseAST; import de.uni_freiburg.informatik.ultimate.lib.chc.IChcScript; import de.uni_freiburg.informatik.ultimate.lib.chc.SmtChcScript; -import de.uni_freiburg.informatik.ultimate.lib.chc.eldarica.EldaricaChcScript; import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcSatResult; import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcUnknownResult; import de.uni_freiburg.informatik.ultimate.lib.chc.results.ChcUnsatResult; @@ -99,7 +99,8 @@ public boolean process(final IElement root) throws Throwable { private IChcScript getBackend(final HornAnnot annotation) { switch (mPrefs.getBackend()) { case ELDARICA: - return new EldaricaChcScript(mServices, annotation.getScript().getScript()); + // return new EldaricaChcScript(mServices, annotation.getScript().getScript()); + return new EldaricaCliChcScript(mServices, annotation.getScript()); case Z3: return createZ3Backend(); case TREEAUTOMIZER: diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java new file mode 100644 index 00000000000..f2851450731 --- /dev/null +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE CHC Library. + * + * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE CHC Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE CHC Library. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE CHC Library, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE CHC Library grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.lib.chc; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; +import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.logic.LoggingScript; +import de.uni_freiburg.informatik.ultimate.logic.Logics; +import de.uni_freiburg.informatik.ultimate.logic.Model; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor; + +public class EldaricaCliChcScript implements IChcScript { + private static final boolean ADD_CLAUSE_NAMES = false; + private static final boolean ADD_COMMENTS = false; + private static final boolean DECLARE_FUNCTIONS = true; + private static final boolean USE_PORTFOLIO = false; + private static final boolean USE_DISJUNCTIVE_INTERP = true; + + private final IUltimateServiceProvider mServices; + private final ILogger mLogger; + private final ManagedScript mMgdScript; + private final long mDefaultQueryTimeout; + + private boolean mProduceModels = false; + + private LBool mLastResult; + private Model mLastModel = null; + + public EldaricaCliChcScript(final IUltimateServiceProvider services, final ManagedScript mgdScript) { + this(services, mgdScript, -1L); + } + + public EldaricaCliChcScript(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final long defaultTimeout) { + mServices = services; + mLogger = services.getLoggingService().getLogger(getClass()); + mMgdScript = mgdScript; + mDefaultQueryTimeout = defaultTimeout; + } + + @Override + public Script getScript() { + return mMgdScript.getScript(); + } + + @Override + public LBool solve(final HcSymbolTable symbolTable, final List system) { + return solve(symbolTable, system, -1L); + } + + @Override + public LBool solve(final HcSymbolTable symbolTable, final List system, final long timeout) { + // generate file with Horn clauses + final File tmpFile; + try { + tmpFile = File.createTempFile("eldarica_", ".smt2"); + mLogger.info("Writing script to file " + tmpFile.getAbsolutePath()); + + final var dumperScript = new LoggingScript(tmpFile.getAbsolutePath(), true); + dumperScript.setLogic(Logics.HORN); + + new ChcAsserter(mMgdScript, dumperScript, ADD_CLAUSE_NAMES, ADD_COMMENTS, DECLARE_FUNCTIONS) + .assertClauses(symbolTable, system); + dumperScript.checkSat(); + } catch (final IOException e) { + throw new RuntimeException(e); + } + + try { + // run eldarica on file + final var executor = new Executor(getCommand(tmpFile), mMgdScript.getScript(), mLogger, mServices, + "eldarica", null, null, null, determineTimeout(timeout)); + + mLastResult = executor.parseCheckSatResult(); + mLastModel = (mLastResult == LBool.SAT && mProduceModels) ? executor.parseGetModelResult() : null; + + return mLastResult; + + } catch (final IOException e) { + throw new RuntimeException(e); + } + } + + private String getCommand(final File file) { + var command = "eld"; + if (USE_PORTFOLIO) { + command += " -portfolio"; + } + if (USE_DISJUNCTIVE_INTERP) { + command += " -disj"; + } + if (mProduceModels) { + command += " -ssol"; + } + return command + " " + file.getAbsolutePath(); + } + + @Override + public boolean supportsModelProduction() { + return true; + } + + @Override + public void produceModels(final boolean enable) { + mProduceModels = enable; + } + + @Override + public Optional getModel() { + if (mLastResult != LBool.SAT) { + throw new UnsupportedOperationException("No model available: last query was " + mLastResult); + } + return Optional.ofNullable(mLastModel); + } + + @Override + public boolean supportsDerivationProduction() { + return false; + } + + @Override + public void produceDerivations(final boolean enable) { + throw new UnsupportedOperationException(); + } + + @Override + public Optional getDerivation() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean supportsUnsatCores() { + return false; + } + + @Override + public void produceUnsatCores(final boolean enable) { + throw new UnsupportedOperationException(); + } + + @Override + public Optional> getUnsatCore() { + throw new UnsupportedOperationException(); + } + + private long determineTimeout(final long queryTimeout) { + final var globalTimeout = mServices.getProgressMonitorService().remainingTime(); + final var currentTimeout = queryTimeout <= 0 ? mDefaultQueryTimeout : queryTimeout; + final var actualTimeout = currentTimeout <= 0 ? globalTimeout : Long.min(currentTimeout, globalTimeout); + return actualTimeout; + } +} From 968a27039536b44ae7f24cef5aeca1a17fa1ad43 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 9 Jun 2023 10:37:45 +0200 Subject: [PATCH 070/124] log model if found --- .../ultimate/plugins/chcsolver/ChcSolverObserver.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java index a3e47198161..568a5c68b1b 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java @@ -172,6 +172,8 @@ private ChcSatResult createSatResult(final IChcScript chcScript) { final Model model; if (mPrefs.produceModels() && chcScript.supportsModelProduction()) { model = chcScript.getModel().orElse(null); + mLogger.info("ChcSolver found model:"); + mLogger.info(model); } else { model = null; } From 011ae38f00a0387166e19f2590c7173006f4c0d1 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 9 Jun 2023 11:17:02 +0200 Subject: [PATCH 071/124] ChcTransferrer: fix resolution of head variables --- .../ultimate/lib/chc/ChcTransferrer.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index 29e628b6cc0..1eb537bd83b 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -79,9 +79,11 @@ private HcSymbolTable transfer(final HcSymbolTable symbolTable) { } public HcPredicateSymbol transfer(final HcPredicateSymbol predicate) { - final var sorts = - predicate.getParameterSorts().stream().map(mTransferrer::transferSort).collect(Collectors.toList()); - return mTargetSymbolTable.getOrConstructHornClausePredicateSymbol(predicate.getName(), sorts); + return mPredMapping.computeIfAbsent(predicate, p -> { + final var sorts = + p.getParameterSorts().stream().map(mTransferrer::transferSort).collect(Collectors.toList()); + return mTargetSymbolTable.getOrConstructHornClausePredicateSymbol(p.getName(), sorts); + }); } public T transfer(final T var) { @@ -141,26 +143,30 @@ private T transferOld(final T var, final BiFunction { - final var bodyVars = clause.getBodyVariables().stream().map(this::transfer).collect(Collectors.toSet()); + // head is transferred first, so all HcHeadVars exist when body arguments and constraint are transferred + final HcPredicateSymbol head; final List headVars; if (!clause.isHeadFalse()) { + head = transfer(clause.getHeadPredicate()); headVars = clause.getTermVariablesForHeadPred().stream().map(this::transfer).collect(Collectors.toList()); - } else { + head = null; headVars = null; } - final var constraint = transfer(clause.getConstraintFormula()); + // transfer body final var bodyPreds = clause.getBodyPredicates().stream().map(this::transfer).collect(Collectors.toList()); + final var bodyVars = clause.getBodyVariables().stream().map(this::transfer).collect(Collectors.toSet()); final var bodyArgs = clause.getBodyPredToArgs().stream() .map(args -> args.stream().map(this::transfer).collect(Collectors.toList())) .collect(Collectors.toList()); + + final var constraint = transfer(clause.getConstraintFormula()); if (clause.isHeadFalse()) { return new HornClause(mTargetScript, mTargetSymbolTable, constraint, bodyPreds, bodyArgs, bodyVars); } - final var head = transfer(clause.getHeadPredicate()); return new HornClause(mTargetScript, mTargetSymbolTable, constraint, head, headVars, bodyPreds, bodyArgs, bodyVars); }); From d2af6b79dd5320ea67416cf117a04974bc963180 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 9 Jun 2023 11:17:46 +0200 Subject: [PATCH 072/124] ChcTransferrer: implement transferBack(Model) --- .../ultimate/lib/chc/ChcTransferrer.java | 39 ++++++++++++++++--- .../smtsolver/external/ModelDescription.java | 2 +- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index 1eb537bd83b..5db937049c1 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -26,6 +26,8 @@ */ package de.uni_freiburg.informatik.ultimate.lib.chc; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiFunction; @@ -37,6 +39,9 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; +import de.uni_freiburg.informatik.ultimate.logic.TermVariable; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.FunctionDefinition; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; /** @@ -52,6 +57,9 @@ public class ChcTransferrer { private final HcSymbolTable mTargetSymbolTable; private final TermTransferrer mTransferrer; + private final TermTransferrer mBackTransferrer; + + private final BidirectionalMap mTransferMap = new BidirectionalMap<>(); private final BidirectionalMap mPredMapping = new BidirectionalMap<>(); private final BidirectionalMap mClauseMapping = new BidirectionalMap<>(); @@ -59,7 +67,8 @@ public ChcTransferrer(final Script originalScript, final ManagedScript targetScr final HcSymbolTable symbolTable) { mOriginalScript = originalScript; mTargetScript = targetScript; - mTransferrer = new TermTransferrer(originalScript, targetScript.getScript()); + mTransferrer = new TermTransferrer(originalScript, targetScript.getScript(), mTransferMap, false); + mBackTransferrer = new TermTransferrer(targetScript.getScript(), originalScript, mTransferMap.inverse(), false); mOriginalSymbolTable = symbolTable; mTargetSymbolTable = transfer(symbolTable); @@ -196,8 +205,25 @@ public ChcSolution transferBack(final ChcSolution solution) { } public Model transferBack(final Model model) { - // TODO - throw new UnsupportedOperationException("not yet implemented"); + if (!(model instanceof ModelDescription)) { + // TODO support other types of models by wrapping in a "TransferredModel" class? + throw new UnsupportedOperationException("Can currently only transfer models of type ModelDescription"); + } + return transferBack((ModelDescription) model); + } + + private ModelDescription transferBack(final ModelDescription model) { + final var functions = new HashSet(); + for (final var func : model.getDefinedFunctions()) { + final var funcSym = mTargetScript.getScript().getFunctionSymbol(func.getName()); + final var funDesc = model.getFunctionDefinition(func.getName()); + final var params = Arrays.stream(funDesc.getParams()) + .map(x -> mTargetScript.getScript().variable(x.getName(), transferBack(x.getSort()))) + .toArray(TermVariable[]::new); + final var body = transferBack(funDesc.getBody()); + functions.add(new FunctionDefinition(funcSym, params, body)); + } + return new ModelDescription(functions); } public Derivation transferBack(final Derivation derivation) { @@ -227,7 +253,10 @@ public HcPredicateSymbol transferBack(final HcPredicateSymbol predicate) { } private Term transferBack(final Term term) { - // TODO - throw new UnsupportedOperationException("not yet implemented"); + return mBackTransferrer.transform(term); + } + + private Sort transferBack(final Sort sort) { + return mBackTransferrer.transferSort(sort); } } diff --git a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/ModelDescription.java b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/ModelDescription.java index 11ee3fde07f..861d0e51443 100644 --- a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/ModelDescription.java +++ b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/ModelDescription.java @@ -85,7 +85,7 @@ public Term getFunctionDefinition(final String func, final TermVariable[] args) return unletter.transform(def.getBody()); } - private FunctionDefinition getFunctionDefinition(final String func) { + public FunctionDefinition getFunctionDefinition(final String func) { return mDefinitions.get(func); } From 3a8dd60cf02acb0a838750519162eb0dee502a36 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 12 Jun 2023 09:42:04 +0200 Subject: [PATCH 073/124] prepare more extensive evaluation --- .../default/benchexec/sleep-threadmodular.xml | 84 +++++++++++++++++-- 1 file changed, 79 insertions(+), 5 deletions(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index d2f2d9fb903..a9691a0dab5 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -38,6 +38,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -46,4 +120,4 @@ ../../../trunk/examples/threadmodular/regression/*/*.yml ../../../trunk/examples/svcomp/properties/unreach-call.prp - \ No newline at end of file + From bc7f6ac4256c6a735557ddfc68d5b8994373fc2b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 13 Jun 2023 19:37:45 +0200 Subject: [PATCH 074/124] ChcTransferrer: fix model backtranslation - only transfer Horn predicate symbols (Z3 also gives models for constants corresponding to HcVars) - fix transferring term variables - properly transfer function symbol --- .../ultimate/lib/chc/ChcTransferrer.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index 5db937049c1..f0364bf4054 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -35,6 +35,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.scripttransfer.TermTransferrer; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.logic.FunctionSymbol; import de.uni_freiburg.informatik.ultimate.logic.Model; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Sort; @@ -215,17 +216,22 @@ public Model transferBack(final Model model) { private ModelDescription transferBack(final ModelDescription model) { final var functions = new HashSet(); for (final var func : model.getDefinedFunctions()) { - final var funcSym = mTargetScript.getScript().getFunctionSymbol(func.getName()); + if (!isHcPredicate(func)) { + continue; + } + final var funcSym = mOriginalScript.getFunctionSymbol(func.getName()); final var funDesc = model.getFunctionDefinition(func.getName()); - final var params = Arrays.stream(funDesc.getParams()) - .map(x -> mTargetScript.getScript().variable(x.getName(), transferBack(x.getSort()))) - .toArray(TermVariable[]::new); + final var params = Arrays.stream(funDesc.getParams()).map(this::transferBack).toArray(TermVariable[]::new); final var body = transferBack(funDesc.getBody()); functions.add(new FunctionDefinition(funcSym, params, body)); } return new ModelDescription(functions); } + private boolean isHcPredicate(final FunctionSymbol fun) { + return mPredMapping.values().stream().anyMatch(p -> p.getFunctionSymbol().equals(fun)); + } + public Derivation transferBack(final Derivation derivation) { final var predicate = transferBack(derivation.getPredicate()); final var arguments = derivation.getArguments().stream().map(this::transferBack).collect(Collectors.toList()); @@ -252,6 +258,11 @@ public HcPredicateSymbol transferBack(final HcPredicateSymbol predicate) { return mPredMapping.inverse().get(predicate); } + private TermVariable transferBack(final TermVariable tv) { + return (TermVariable) mTransferMap.inverse().computeIfAbsent(tv, + y -> mOriginalScript.variable(((TermVariable) y).getName(), transferBack(y.getSort()))); + } + private Term transferBack(final Term term) { return mBackTransferrer.transform(term); } From e6bf6e30f8a4adbfaafd2e972a6b8e8e57b4efa5 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 15 Jun 2023 19:05:50 +0200 Subject: [PATCH 075/124] ApproximateLockstepPreferenceOrder: do not confuse locations with their depth --- .../partialorder/ApproximateLockstepPreferenceOrder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java index 85c5ed00bd7..33f024ba0c8 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java @@ -80,8 +80,13 @@ private Term getOrderConstraint(final IcfgLocation fixedLoc, final Term otherLoc final Map locationMap) { final var fixedDepth = mDepth.get(fixedLoc); - final var greaterLocs = mDepth.entrySet().stream().filter(e -> e.getValue() >= fixedDepth) - .map(e -> mDepth.get(e.getKey())).sorted().collect(Collectors.toList()); + final var greaterLocs = mDepth.entrySet().stream() + // consider only locations with greater depth + .filter(e -> e.getValue() >= fixedDepth) + // replace locations by the integers representing the, + .map(e -> locationMap.get(e.getKey())) + // sort (to simplify #rangify below) and collect + .sorted().collect(Collectors.toList()); final var locRanges = rangify(greaterLocs); final var disjuncts = new ArrayList(); From e9a7c2ea729111faddd2c9e6f8287940aec9ce53 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 15 Jun 2023 19:46:27 +0200 Subject: [PATCH 076/124] fix implementation of thread-modular preference orders This reflects a change in the previously erroneous (i.e. way too restrictive) definition. --- .../ApproximateLockstepPreferenceOrder.java | 38 +++++++++++------- .../ExplicitPreferenceOrderManager.java | 17 ++++++-- .../IThreadModularPreferenceOrder.java | 39 ++++++++++++------- .../SequentialCompositionPreferenceOrder.java | 4 +- .../SymbolicPreferenceOrderManager.java | 5 ++- 5 files changed, 67 insertions(+), 36 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java index 33f024ba0c8..c9480effe72 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.BiPredicate; import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; @@ -52,21 +53,18 @@ protected ApproximateLockstepPreferenceOrder(final Script script, final Map locationMap) { - if (lesserLoc != null && greaterLoc != null) { - return getOrderConstraint(lesserLoc, greaterLoc); + public Term getOrderConstraint(final IcfgLocation loc1, final Term loc1Term, final IcfgLocation loc2, + final Term loc2Term, final Map locationMap) { + if (loc1 != null && loc2 != null) { + return getOrderConstraint(loc1, loc2); } - if (lesserLoc != null) { - return getOrderConstraint(lesserLoc, greaterLocTerm, locationMap); + if (loc1 != null) { + return getOrderConstraint(loc1, loc2Term, locationMap); } - assert greaterLoc != null : "At least one location must be fixed"; - final var constraint = getOrderConstraint(greaterLoc, lesserLocTerm, locationMap); - - // invert the constraint, because we flipped greaterLoc and lesserLocTerm - return SmtUtils.not(mScript, constraint); + assert loc2 != null : "At least one location must be fixed"; + return getOrderConstraint(loc1Term, loc2, locationMap); } private Term getOrderConstraint(final IcfgLocation lesserLoc, final IcfgLocation greaterLoc) { @@ -76,13 +74,23 @@ private Term getOrderConstraint(final IcfgLocation lesserLoc, final IcfgLocation return mScript.term(SMTLIBConstants.FALSE); } - private Term getOrderConstraint(final IcfgLocation fixedLoc, final Term otherLoc, + private Term getOrderConstraint(final IcfgLocation loc1, final Term loc2, + final Map locationMap) { + return getOrderConstraint(loc1, loc2, (x, y) -> x >= y, locationMap); + } + + private Term getOrderConstraint(final Term loc1, final IcfgLocation loc2, final Map locationMap) { - final var fixedDepth = mDepth.get(fixedLoc); + return getOrderConstraint(loc2, loc1, (x, y) -> x <= y, locationMap); + } + + private Term getOrderConstraint(final IcfgLocation loc1, final Term loc2, + final BiPredicate comparator, final Map locationMap) { + final var loc1Depth = mDepth.get(loc1); final var greaterLocs = mDepth.entrySet().stream() // consider only locations with greater depth - .filter(e -> e.getValue() >= fixedDepth) + .filter(e -> comparator.test(e.getValue(), loc1Depth)) // replace locations by the integers representing the, .map(e -> locationMap.get(e.getKey())) // sort (to simplify #rangify below) and collect @@ -91,7 +99,7 @@ private Term getOrderConstraint(final IcfgLocation fixedLoc, final Term otherLoc final var disjuncts = new ArrayList(); for (final var range : locRanges) { - final var disjunct = getIntervalConstraint(otherLoc, range.getFirst(), range.getSecond()); + final var disjunct = getIntervalConstraint(loc2, range.getFirst(), range.getSecond()); if (SmtUtils.isTrueLiteral(disjunct)) { return mScript.term(SMTLIBConstants.TRUE); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java index 056e0277ba6..97cad10b67a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitPreferenceOrderManager.java @@ -31,7 +31,7 @@ import java.util.Map; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; @@ -53,11 +53,20 @@ public ExplicitPreferenceOrderManager(final IThreadModularPreferenceOrder prefer public Term getOrderConstraint(final HornClauseBuilder clause, final Comparator comp, final ThreadInstance thread1, final IcfgLocation loc1, final Term locTerm1, final ThreadInstance thread2, final IcfgLocation loc2, final Term locTerm2) { + // (loc1, loc2) in R + final var locConstraint1 = mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); + final int ordering = comp.compare(thread1, thread2); - if (ordering >= 0) { - return mScript.term(SMTLIBConstants.FALSE); + if (ordering < 0) { + // implication "(loc2, loc1) in R ==> thread1 < thread2" trivially true + return locConstraint1; } - return mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); + + // (loc2, loc1) in R + final var locConstraint2 = mPreferenceOrder.getOrderConstraint(loc2, locTerm2, loc1, locTerm1, mLocationMap); + + // (loc1, loc2) in R /\ (loc2, loc1) not in R + return SmtUtils.and(mScript, locConstraint1, SmtUtils.not(mScript, locConstraint2)); } @Override diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java index 5f6ed34c0ae..a7c22595481 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IThreadModularPreferenceOrder.java @@ -31,26 +31,39 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.logic.Term; +/** + * A thread-modular preference order is used to select the representatives present in the reduction, i.e., those + * interleavings that are not pruned. This interface is used for CHC-based sleep set reduction, and is somewhat + * analogous to {@link de.uni_freiburg.informatik.ultimate.automata.partialorder.IDfsOrder.IDfsOrder} in automata-based + * reduction algorithms. + * + * However, thread-modular preference orders are somewhat more restrictive, to allow their usage in parametrized + * programs, and they are symbolic, to allow usage in the CHC encoding. A thread-modular preference order is given by a + * transitive binary relation R between CFG locations. If threads i and j are in locations l_i and l_j, respectively, + * then thread i is preferable to thread j iff (l_i,l_j) in R, and (l_j, l_i) in R implies i < j. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + */ public interface IThreadModularPreferenceOrder { /** - * Constructs a boolean constraint expressing the ordering between two threads. If the constraint evaluates to - * {@code true}, then the "lesser" thread is preferred. Otherwise, the "greater" thread is preferred. + * Constructs a boolean constraint expressing membership of a pair of CFG locations in the relation underlying this + * preference order. * - * At least one of {@code lesserLoc} and {@code greaterLoc} is guaranteed to be non-null. + * At least one of {@code loc1} and {@code loc2} is guaranteed to be non-null. * - * @param lesserLoc - * The location of the thread with a lower thread ID. May be null. - * @param lesserLocTerm - * A term denoting the location of the thread with a lower thread ID. - * @param greaterLoc - * The location of the thread with a greater thread ID. May be null. - * @param greaterLocTerm - * A term denoting the location of the thread with a greater thread ID. - * @param locationTerms + * @param loc1 + * The first location of the pair to be considered. May be null. + * @param loc1Term + * A term denoting the first location of the pair to be considered. + * @param loc2 + * The second location of the pair to be considered. May be null. + * @param loc2Term + * A term denoting the second location of the pair to be considered. + * @param locationMap * A mapping from locations to the integer value used to represent that location. * @return a constraint over the given terms (including the terms in {@code locationTerms}) */ - Term getOrderConstraint(IcfgLocation lesserLoc, Term lesserLocTerm, IcfgLocation greaterLoc, Term greaterLocTerm, + Term getOrderConstraint(IcfgLocation loc1, Term loc1Term, IcfgLocation loc2, Term loc2Term, Map locationMap); boolean isPositional(); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java index 15ba73fafb8..e2f842b9635 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SequentialCompositionPreferenceOrder.java @@ -41,8 +41,8 @@ public SequentialCompositionPreferenceOrder(final Script script) { } @Override - public Term getOrderConstraint(final IcfgLocation lesserLoc, final Term lesserLocTerm, - final IcfgLocation greaterLoc, final Term greaterLocTerm, final Map locationMap) { + public Term getOrderConstraint(final IcfgLocation loc1, final Term loc1Term, final IcfgLocation loc2, + final Term loc2Term, final Map locationMap) { return mScript.term(SMTLIBConstants.TRUE); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java index 6f80ff290cb..ebe541e2ea4 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java @@ -58,8 +58,9 @@ public Term getOrderConstraint(final HornClauseBuilder clause, final Comparator< final var id2 = clause.getBodyVar(new HcThreadIdVar(thread2, mScript)); final var lesserConstraint = SmtUtils.less(mScript, id1.getTerm(), id2.getTerm()); - final var locConstraint = mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); - return SmtUtils.and(mScript, lesserConstraint, locConstraint); + final var locConstraint1 = mPreferenceOrder.getOrderConstraint(loc1, locTerm1, loc2, locTerm2, mLocationMap); + final var locConstraint2 = mPreferenceOrder.getOrderConstraint(loc2, locTerm2, loc1, locTerm1, mLocationMap); + return SmtUtils.and(mScript, locConstraint1, SmtUtils.implies(mScript, locConstraint2, lesserConstraint)); } @Override From 66e461b249ea783403d6e4bc3eda2ceb48907ecd Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 16 Jun 2023 10:27:14 +0200 Subject: [PATCH 077/124] add setting for SKIP_ASSERTION_EDGES --- .../concurrent/ThreadModularHornClauseProvider.java | 5 ++--- .../preferences/IcfgToChcPreferenceInitializer.java | 10 +++++++++- .../icfgtochc/preferences/IcfgToChcPreferences.java | 4 ++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 01549301530..7748f1ee811 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -83,7 +83,6 @@ public class ThreadModularHornClauseProvider extends ExtensibleHornClauseProvider { private static final String FUNCTION_NAME = "Inv"; private static final int INTERFERING_INSTANCE_ID = -1; - protected static final boolean SKIP_ASSERTION_EDGES = true; protected final IUltimateServiceProvider mServices; protected final IIcfg mIcfg; @@ -285,7 +284,7 @@ protected List buildAllClauses() { // add safety clauses switch (mPrefs.specMode()) { case ASSERT_VIOLATIONS: - if (SKIP_ASSERTION_EDGES) { + if (mPrefs.skipAssertEdges()) { for (final var triple : getErrorConditions()) { final var safetyClause = buildErrorSafetyClause(triple.getFirst(), triple.getSecond(), triple.getThird()); @@ -393,7 +392,7 @@ protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { } protected boolean isSkippableAssertEdge(final IcfgEdge edge) { - if (!SKIP_ASSERTION_EDGES) { + if (!mPrefs.skipAssertEdges()) { return false; } final var errorLocs = mIcfg.getProcedureErrorNodes().get(edge.getSucceedingProcedure()); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index f4d23113601..89d4d6a70ff 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -82,6 +82,11 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "templates, before a thread-modular proof is computed."; public static final boolean DEF_LIPTON_REDUCTION = false; + public static final String LABEL_SKIP_ASSERT_EDGES = "Skip assert edges"; + private static final String DESC_SKIP_ASSERT_EDGES = "If enabled, we do not directly encode unreachability of " + + "error locations. Instead, the assertion condition is part of the safety clause."; + private static final boolean DEF_SKIP_ASSERT_EDGES = true; + // SETTINGS FOR SLEEP SET REDUCTION // ------------------------------------------------------------------------ @@ -127,19 +132,22 @@ public IcfgToChcPreferenceInitializer() { @Override protected BaseUltimatePreferenceItem[] initDefaultPreferences() { return new BaseUltimatePreferenceItem[] { - // Settings for thread-modular proofs + // Settings for concurrent programs new UltimatePreferenceItem<>(LABEL_CONCURRENCY_MODE, DEF_CONCURRENCY_MODE, DESC_CONCURRENCY_MODE, PreferenceType.Combo, ConcurrencyMode.values()), new UltimatePreferenceItem<>(LABEL_HAS_PRECONDITION, DEF_HAS_PRECONDITION, DESC_HAS_PRECONDITION, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SPEC_MODE, DEF_SPEC_MODE, DESC_SPEC_MODE, PreferenceType.Combo, SpecMode.values()), + // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), new UltimatePreferenceItem<>(LABEL_EXPLICIT_LOCATIONS, DEF_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_SKIP_ASSERT_EDGES, DEF_SKIP_ASSERT_EDGES, DESC_SKIP_ASSERT_EDGES, + PreferenceType.Boolean), getSleepSetSettings() }; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index fe305fb85d0..9bdf4bb0a28 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -66,6 +66,10 @@ public boolean useLiptonReduction() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_LIPTON_REDUCTION); } + public boolean skipAssertEdges() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SKIP_ASSERT_EDGES); + } + public boolean useSleepSets() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SLEEP_SET_REDUCTION); } From 806d74d43d3d56f786c9b15a3445e44c58dba766 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 16 Jun 2023 10:27:59 +0200 Subject: [PATCH 078/124] ensure models are in Ultimate normal form --- .../lib/chc/ChcSolutionNormalizer.java | 83 +++++++++++++++++++ .../ultimate/lib/chc/ChcTransferrer.java | 4 + .../lib/chc/EldaricaCliChcScript.java | 7 +- .../ultimate/lib/chc/GolemChcScript.java | 7 +- .../ultimate/lib/chc/SmtChcScript.java | 17 +++- 5 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcSolutionNormalizer.java diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcSolutionNormalizer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcSolutionNormalizer.java new file mode 100644 index 00000000000..c69baf729da --- /dev/null +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcSolutionNormalizer.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2023 University of Freiburg + * + * This file is part of the ULTIMATE CHC Library. + * + * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE CHC Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE CHC Library. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE CHC Library, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE CHC Library grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.lib.chc; + +import java.util.stream.Collectors; + +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.normalforms.UnfTransformer; +import de.uni_freiburg.informatik.ultimate.logic.Model; +import de.uni_freiburg.informatik.ultimate.logic.Script; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.FunctionDefinition; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; + +/** + * Transforms CHC solutions into Ultimate normal form. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + */ +public class ChcSolutionNormalizer { + private final Script mScript; + + public ChcSolutionNormalizer(final Script script) { + mScript = script; + } + + public ChcSolution normalize(final ChcSolution solution) { + switch (solution.getSatisfiability()) { + case SAT: + if (solution.getModel() == null) { + return solution; + } + return ChcSolution.sat(normalize((ModelDescription) solution.getModel())); + case UNSAT: + if (solution.getDerivation() == null) { + return solution; + } + return ChcSolution.unsat(normalize(solution.getDerivation()), solution.getUnsatCore()); + case UNKNOWN: + return solution; + default: + throw new AssertionError(); + } + } + + public Model normalize(final ModelDescription model) { + return new ModelDescription(model.getDefinedFunctions().stream() + .map(fun -> normalize(model.getFunctionDefinition(fun.getName()))).collect(Collectors.toSet())); + } + + public FunctionDefinition normalize(final FunctionDefinition definition) { + final var body = new UnfTransformer(mScript).transform(definition.getBody()); + return new FunctionDefinition(definition.getName(), definition.getParams(), body); + } + + public Derivation normalize(final Derivation derivation) { + // TODO + return derivation; + } +} diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index f0364bf4054..e67600d34c2 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -270,4 +270,8 @@ private Term transferBack(final Term term) { private Sort transferBack(final Sort sort) { return mBackTransferrer.transferSort(sort); } + + public ManagedScript getTargetScript() { + return mTargetScript; + } } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java index f2851450731..b900dff513e 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java @@ -41,6 +41,7 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; import de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; public class EldaricaCliChcScript implements IChcScript { private static final boolean ADD_CLAUSE_NAMES = false; @@ -143,7 +144,11 @@ public Optional getModel() { if (mLastResult != LBool.SAT) { throw new UnsupportedOperationException("No model available: last query was " + mLastResult); } - return Optional.ofNullable(mLastModel); + if (mLastModel == null) { + return Optional.empty(); + } + final var normalizedModel = new ChcSolutionNormalizer(getScript()).normalize((ModelDescription) mLastModel); + return Optional.of(normalizedModel); } @Override diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/GolemChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/GolemChcScript.java index 602dd6097e3..ffc78d83f72 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/GolemChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/GolemChcScript.java @@ -41,6 +41,7 @@ import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; import de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; public class GolemChcScript implements IChcScript { private static final boolean ADD_CLAUSE_NAMES = false; @@ -137,7 +138,11 @@ public Optional getModel() { if (mLastResult != LBool.SAT) { throw new UnsupportedOperationException("No model available: last query was " + mLastResult); } - return Optional.ofNullable(mLastModel); + if (mLastModel == null) { + return Optional.empty(); + } + final var normalizedModel = new ChcSolutionNormalizer(getScript()).normalize((ModelDescription) mLastModel); + return Optional.of(normalizedModel); } @Override diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java index b754e4c774b..acf2e9f8352 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java @@ -40,6 +40,7 @@ import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; +import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; /** * Used to access a constraint Horn solver via the {@link Script} interface. This can e.g. be used to access Z3's CHC @@ -127,10 +128,22 @@ public Optional getModel() { if (model == null) { return Optional.empty(); } + + // back-transfer model if necessary + final Model transferredModel; + final Script outputScript; if (mTransferrer == null) { - return Optional.of(model); + transferredModel = model; + outputScript = getScript(); + } else { + transferredModel = mTransferrer.transferBack(model); + outputScript = mTransferrer.getTargetScript().getScript(); } - return Optional.of(mTransferrer.transferBack(model)); + + // ensure Ultimate normal form + final var normalizedModel = + new ChcSolutionNormalizer(outputScript).normalize((ModelDescription) transferredModel); + return Optional.of(normalizedModel); } @Override From 90a251ae725c5fb0039cae1db4661aeea27da028 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 16 Jun 2023 10:28:22 +0200 Subject: [PATCH 079/124] temporarily (for evaluation) avoid let terms in models --- .../ultimate/smtsolver/external/FunctionDefinition.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java index 7a1a880cb67..a5847c35135 100644 --- a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java +++ b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java @@ -80,7 +80,8 @@ public String toString() { builder.append(") "); builder.append(getReturnSort()); builder.append(" "); - builder.append(mBody); + // TODO temporary change, revert to toString in the future + builder.append(mBody.toStringDirect()); builder.append(")"); return builder.toString(); } From f271ee5d1d44fa8b247343efcb5cfe870d73ff08 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 16 Jun 2023 14:33:43 +0200 Subject: [PATCH 080/124] SmtChcScript: transfer models to the proper script --- .../informatik/ultimate/lib/chc/ChcTransferrer.java | 8 ++++++-- .../informatik/ultimate/lib/chc/SmtChcScript.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index e67600d34c2..c582560abcd 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -271,7 +271,11 @@ private Sort transferBack(final Sort sort) { return mBackTransferrer.transferSort(sort); } - public ManagedScript getTargetScript() { - return mTargetScript; + public Script getSourceScript() { + return mOriginalScript; + } + + public Script getTargetScript() { + return mTargetScript.getScript(); } } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java index acf2e9f8352..7c58711a7fa 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/SmtChcScript.java @@ -137,7 +137,7 @@ public Optional getModel() { outputScript = getScript(); } else { transferredModel = mTransferrer.transferBack(model); - outputScript = mTransferrer.getTargetScript().getScript(); + outputScript = mTransferrer.getSourceScript(); } // ensure Ultimate normal form From c8ff3af4ef27e1d87e51f19215fd2756e119c30d Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 21 Jun 2023 16:32:58 +0200 Subject: [PATCH 081/124] throw error for joins even without -ea --- .../icfgtochc/concurrent/ThreadModularHornClauseProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 7748f1ee811..38bad299eef 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -422,7 +422,7 @@ protected boolean isSkippableAssertEdge(final IcfgEdge edge) { return result; } if (edge instanceof IIcfgJoinTransitionThreadCurrent) { - assert false : "Joins not supported"; + throw new UnsupportedOperationException("Joins not supported"); } return getInstances(edge.getPrecedingProcedure()).stream() From 78f44351ff595463d26470196a61fb6f7c10bf74 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 22 Jun 2023 11:33:28 +0200 Subject: [PATCH 082/124] parametric programs: support multiple templates and single-instance threads --- .../icfgtochc/concurrent/ConcurrencyMode.java | 44 +++++++++++++++---- .../ThreadModularHornClauseProvider.java | 5 +-- .../IcfgToChcPreferenceInitializer.java | 16 +++++++ .../preferences/IcfgToChcPreferences.java | 20 +++++++++ 4 files changed, 73 insertions(+), 12 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java index 8ba4d826ebb..eb26ffe6b19 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java @@ -33,10 +33,12 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; public enum ConcurrencyMode { @@ -63,12 +65,25 @@ public enum ConcurrencyMode { * the second component contains all threads that may have more than {@code level} instances. */ public Pair, Set> getThreadNumbersAndUnboundedThreads(final IIcfg icfg, - final int level) { + final IcfgToChcPreferences prefs) { + final int level = prefs.getThreadModularProofLevel(); + if (this == ConcurrencyMode.PARAMETRIC) { - final var numberOfThreads = - icfg.getInitialNodes().stream().collect(Collectors.toMap(loc -> loc.getProcedure(), loc -> level)); - final var unbounded = Set.copyOf(numberOfThreads.keySet()); - return new Pair<>(numberOfThreads, unbounded); + // get templates either from setting, or initial locs of ICFG + final var prefTemplates = prefs.getParametricTemplates(); + final var templates = prefTemplates == null + ? icfg.getInitialNodes().stream().map(IcfgLocation::getProcedure).collect(Collectors.toList()) + : prefTemplates; + final var templateInstances = templates.stream().map(proc -> new Pair<>(proc, level)); + + // get single-instance threads from settings, if any + final var prefSingleThreads = prefs.getParametricSingleThreads(); + final Stream> singleThreads = prefSingleThreads == null ? Stream.empty() + : prefSingleThreads.stream().map(proc -> new Pair<>(proc, 1)); + + final var numberOfThreads = Stream.concat(templateInstances, singleThreads) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); + return new Pair<>(numberOfThreads, Set.copyOf(templates)); } assert this == ConcurrencyMode.SINGLE_MAIN_THREAD : "Unknown mode: " + this; @@ -108,12 +123,23 @@ public Pair, Set> getThreadNumbersAndUnboundedThrea * @return A mapping from initially running thread instances to their initial locations */ public Map getInitialLocations(final IIcfg icfg, - final List instances) { + final List instances, final IcfgToChcPreferences prefs) { switch (this) { case PARAMETRIC: - // combine each initial location (usually there is only one) with ALL instances of its template - return icfg - .getInitialNodes().stream().flatMap(l -> instances.stream() + // get templates either from setting, or initial locs of ICFG + final var prefTemplates = prefs.getParametricTemplates(); + final Stream templateInitLocs = + prefTemplates == null ? icfg.getInitialNodes().stream() + : prefTemplates.stream().map(proc -> icfg.getProcedureEntryNodes().get(proc)); + + // get single-instance threads from settings, if any + final var prefSingleThreads = prefs.getParametricSingleThreads(); + final Stream singleThreadInitLocs = prefSingleThreads == null ? Stream.empty() + : prefSingleThreads.stream().map(proc -> icfg.getProcedureEntryNodes().get(proc)); + + // combine each initial location with ALL instances of its template + return Stream + .concat(templateInitLocs, singleThreadInitLocs).flatMap(l -> instances.stream() .filter(i -> i.getTemplateName().equals(l.getProcedure())).map(i -> new Pair<>(i, l))) .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); case SINGLE_MAIN_THREAD: diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 38bad299eef..1a1a896c434 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -124,8 +124,7 @@ public ThreadModularHornClauseProvider(final IUltimateServiceProvider services, mCfgSymbolTable = mIcfg.getCfgSmtToolkit().getSymbolTable(); mVariableFilter = variableFilter; - final var threadInfo = - mPrefs.concurrencyMode().getThreadNumbersAndUnboundedThreads(icfg, mPrefs.getThreadModularProofLevel()); + final var threadInfo = mPrefs.concurrencyMode().getThreadNumbersAndUnboundedThreads(icfg, mPrefs); mTemplates = Set.copyOf(threadInfo.getFirst().keySet()); mInstances = getInstances(threadInfo.getFirst()); mUnboundedTemplates = threadInfo.getSecond(); @@ -671,7 +670,7 @@ protected void replaceThreadVariables(final List parameters, // ----------------------------------------------------------------------------------------------------------------- protected Map getInitialLocations() { - return mPrefs.concurrencyMode().getInitialLocations(mIcfg, mInstances); + return mPrefs.concurrencyMode().getInitialLocations(mIcfg, mInstances, mPrefs); } protected void addInLocationConstraint(final HornClauseBuilder clause, final ThreadInstance threadInstance, diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 89d4d6a70ff..8e0dc07dea6 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -87,6 +87,18 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "error locations. Instead, the assertion condition is part of the safety clause."; private static final boolean DEF_SKIP_ASSERT_EDGES = true; + // TODO Introduce PreferenceType.List? + public static final String LABEL_PARAMETRIC_TEMPLATES = "Templates for parametric program"; + private static final String DESC_PARAMETRIC_TEMPLATES = "Comma-separated list of procedures denoting thread " + + "templates of the parametric program. Leave empty for default behaviour (i.e., single template given " + + "by ULTIMATE.start in Boogie, main in C)."; + private static final String DEF_PARAMETRIC_TEMPLATES = ""; + + public static final String LABEL_PARAMETRIC_SINGLE_THREADS = "Single-instance threads"; + private static final String DESC_PARAMETRIC_SINGLE_THREADS = + "Comma-separated list of procedures for which a single thread is running in a parametric program."; + private static final String DEF_PARAMETRIC_SINGLE_THREADS = ""; + // SETTINGS FOR SLEEP SET REDUCTION // ------------------------------------------------------------------------ @@ -148,6 +160,10 @@ protected BaseUltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SKIP_ASSERT_EDGES, DEF_SKIP_ASSERT_EDGES, DESC_SKIP_ASSERT_EDGES, PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_PARAMETRIC_TEMPLATES, DEF_PARAMETRIC_TEMPLATES, + DESC_PARAMETRIC_TEMPLATES, PreferenceType.String), + new UltimatePreferenceItem<>(LABEL_PARAMETRIC_SINGLE_THREADS, DEF_PARAMETRIC_SINGLE_THREADS, + DESC_PARAMETRIC_SINGLE_THREADS, PreferenceType.String), getSleepSetSettings() }; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 9bdf4bb0a28..3c16512bd78 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -26,6 +26,10 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.ConditionalIndependence; @@ -94,4 +98,20 @@ public ConditionalIndependence conditionalIndependence() { public boolean useSemicommutativity() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SEMICOMMUTATIVITY); } + + public List getParametricTemplates() { + return getList(IcfgToChcPreferenceInitializer.LABEL_PARAMETRIC_TEMPLATES); + } + + public List getParametricSingleThreads() { + return getList(IcfgToChcPreferenceInitializer.LABEL_PARAMETRIC_SINGLE_THREADS); + } + + private List getList(final String key) { + final var value = mPrefs.getString(key); + if (value == null || value.isBlank()) { + return null; + } + return Arrays.stream(value.split(",")).map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); + } } From a63ceb3d232f0cb684a4ef68a3b3075531324300 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 22 Jun 2023 11:46:43 +0200 Subject: [PATCH 083/124] fix pre/post detection for multiple templates --- .../concurrent/ThreadModularHornClauseProvider.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 1a1a896c434..028f28c1b8d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -374,18 +374,21 @@ protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { if (!mPrefs.hasPreconditions()) { return false; } - - final var template = edge.getPrecedingProcedure(); - final var entryLoc = mIcfg.getProcedureEntryNodes().get(template); - return edge.getSource().equals(entryLoc); + return mIcfg.getInitialNodes().contains(edge.getSource()); } protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { if (mPrefs.specMode() != SpecMode.POSTCONDITION) { return false; } - final var template = edge.getPrecedingProcedure(); + + // only the initial procedure contains the postcondition + final var entryLoc = mIcfg.getProcedureEntryNodes().get(template); + if (!mIcfg.getInitialNodes().contains(entryLoc)) { + return false; + } + final var exitLoc = mIcfg.getProcedureExitNodes().get(template); return edge.getTarget().equals(exitLoc); } From c5b3d182b767b82da423702f6902dd31fba44a11 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Sat, 24 Jun 2023 15:41:32 +0200 Subject: [PATCH 084/124] skip error locations if "skip assert edges" enabled --- .../ThreadModularHornClauseProvider.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 028f28c1b8d..5415ec6bd00 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -172,16 +172,27 @@ private PredicateInfo createInvariantPredicate() { protected Map createLocationMap(final IIcfg icfg) { final var result = new HashMap(); - for (final var entry : icfg.getProcedureEntryNodes().values()) { + for (final var entry : icfg.getProcedureEntryNodes().entrySet()) { + final var errorNodes = icfg.getProcedureErrorNodes().get(entry.getKey()); + final var initial = entry.getValue(); + int counter = 0; - result.put(entry, counter); + result.put(initial, counter); counter++; - final var iterator = new IcfgEdgeIterator(entry.getOutgoingEdges()); + + final var iterator = new IcfgEdgeIterator(initial.getOutgoingEdges()); while (iterator.hasNext()) { final var edge = iterator.next(); assert result.containsKey(edge.getSource()) : "edge with unknown source loc"; - if (!result.containsKey(edge.getTarget())) { - result.put(edge.getTarget(), counter); + final var loc = edge.getTarget(); + + if (mPrefs.skipAssertEdges() && errorNodes.contains(loc)) { + // do not map error locations to an integer (they do not appear in the CHC system) + continue; + } + + if (!result.containsKey(loc)) { + result.put(loc, counter); counter++; } } From ccadeded50500d9a93749e0a48a83c2ebb9a9f56 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 28 Jun 2023 16:58:04 +0200 Subject: [PATCH 085/124] properly filter error locs from CHC system --- .../concurrent/ThreadModularHornClauseProvider.java | 12 ++++++++++-- .../ApproximateLockstepPreferenceOrder.java | 4 +++- .../SleepSetThreadModularHornClauseProvider.java | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 5415ec6bd00..e488ced23de 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -186,8 +186,7 @@ protected Map createLocationMap(final IIcfg icfg) { assert result.containsKey(edge.getSource()) : "edge with unknown source loc"; final var loc = edge.getTarget(); - if (mPrefs.skipAssertEdges() && errorNodes.contains(loc)) { - // do not map error locations to an integer (they do not appear in the CHC system) + if (!isRelevantLocation(loc)) { continue; } @@ -200,6 +199,15 @@ protected Map createLocationMap(final IIcfg icfg) { return result; } + // do not map error locations to an integer if they do not appear in the CHC system + protected boolean isRelevantLocation(final IcfgLocation loc) { + if (!mPrefs.skipAssertEdges()) { + return true; + } + final var errorNodes = mIcfg.getProcedureErrorNodes().get(loc.getProcedure()); + return errorNodes == null || !errorNodes.contains(loc); + } + /** * Constructs the sequence of parameters for the invariant predicate. * diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java index c9480effe72..9ca82ca04bc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ApproximateLockstepPreferenceOrder.java @@ -91,8 +91,10 @@ private Term getOrderConstraint(final IcfgLocation loc1, final Term loc2, final var greaterLocs = mDepth.entrySet().stream() // consider only locations with greater depth .filter(e -> comparator.test(e.getValue(), loc1Depth)) - // replace locations by the integers representing the, + // replace locations by the integers representing them .map(e -> locationMap.get(e.getKey())) + // skip locations not represented in the CHC system + .filter(i -> i != null) // sort (to simplify #rangify below) and collect .sorted().collect(Collectors.toList()); final var locRanges = rangify(greaterLocs); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 5964bf36f8a..41056c10999 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -67,8 +67,8 @@ public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider se final IThreadModularPreferenceOrder preferenceOrder, final IcfgToChcPreferences prefs) { super(services, mgdScript, icfg, symbolTable, prefs); mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), independence); - mThreadLocations = icfg.getProgramPoints().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values())); + mThreadLocations = icfg.getProgramPoints().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, + e -> e.getValue().values().stream().filter(this::isRelevantLocation).collect(Collectors.toList()))); if (mPrefs.breakPreferenceOrderSymmetry()) { mIdVars = null; From fa7c49176b61004e4257558d5d9e8ee3513c61cb Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 28 Jun 2023 16:58:29 +0200 Subject: [PATCH 086/124] fix order for semicommutativity --- .../partialorder/SleepSetThreadModularHornClauseProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 41056c10999..ea2f9b76380 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -324,7 +324,7 @@ protected Term getCommutativityConstraint(final HornClauseBuilder clause, final } final var conjunct = - mIndependenceChecker.getIndependenceCondition(clause, otherThread, edge, activeThread, activeEdge); + mIndependenceChecker.getIndependenceCondition(clause, activeThread, activeEdge, otherThread, edge); if (SmtUtils.isFalseLiteral(conjunct)) { // escape early if one outgoing edge does not commute under any circumstances return mScript.term(SMTLIBConstants.FALSE); From 1b4337833ea7a0525cfa45a7af8a55adcf264edd Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 28 Jun 2023 17:03:23 +0200 Subject: [PATCH 087/124] more work on pre/post for parametric programs --- .../ThreadModularHornClauseProvider.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index e488ced23de..0d3ccc3e57b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -374,6 +374,14 @@ public String toString() { // add actual constraints for spec edges, do nothing if not a spec edge protected void transformSpecEdgeClause(final IcfgEdge edge, final HornClauseBuilder clause) { + // TODO Fix this for + // - parametric programs with some single-instance threads: + // ---> i.e. only modify counter for unbounded templates; make sure bounded threads all at exit loc + // - parametric programs with multiple unbounded templates: + // ---> should there be one counter per template? + // - fork/join programs + // ---> i.e. we don't need the counter, just assert post after main thread has exited + if (isPreConditionSpecEdge(edge) && mPrefs.specMode() == SpecMode.POSTCONDITION) { incrementThreadCounter(clause, mRunningThreadsVar, 1L); } else if (isPostConditionSpecEdge(edge)) { @@ -393,7 +401,9 @@ protected boolean isPreConditionSpecEdge(final IcfgEdge edge) { if (!mPrefs.hasPreconditions()) { return false; } - return mIcfg.getInitialNodes().contains(edge.getSource()); + final var template = edge.getPrecedingProcedure(); + final var entryLoc = mIcfg.getProcedureEntryNodes().get(template); + return edge.getSource().equals(entryLoc); } protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { @@ -401,13 +411,6 @@ protected boolean isPostConditionSpecEdge(final IcfgEdge edge) { return false; } final var template = edge.getPrecedingProcedure(); - - // only the initial procedure contains the postcondition - final var entryLoc = mIcfg.getProcedureEntryNodes().get(template); - if (!mIcfg.getInitialNodes().contains(entryLoc)) { - return false; - } - final var exitLoc = mIcfg.getProcedureExitNodes().get(template); return edge.getTarget().equals(exitLoc); } From 5ab1b013f7ff8dd113669afd8038dd118722ab00 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 3 Jul 2023 11:02:27 +0200 Subject: [PATCH 088/124] temporarily hardcode some conditions for eval purposes --- .../partialorder/IndependenceChecker.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index ccba6f29c16..503b55e0b9e 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -26,6 +26,7 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; +import java.math.BigInteger; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -41,6 +42,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ProgramVarUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; +import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; @@ -84,6 +86,73 @@ public IndependenceChecker(final IUltimateServiceProvider services, final CfgSmt public Term getIndependenceCondition(final HornClauseBuilder clause, final ThreadInstance thread1, final IcfgEdge action1, final ThreadInstance thread2, final IcfgEdge action2) { + // Hardcoded conditions for line-queue example + // TODO remove after evaluation + Term hardcoded = null; + if ("value := queue[id - 1][read_ptr];".equals(action1.toString()) + && "queue := queue[0 := queue[0][write_ptr[0] := idx]];".equals(action2.toString())) { + final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + final var readPtrLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() + .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); + final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) + .findAny().get(); + hardcoded = SmtUtils.or(mMgdScript.getScript(), + SmtUtils.distinct(mMgdScript.getScript(), idLeft.getTerm(), + SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)), + SmtUtils.distinct(mMgdScript.getScript(), readPtrLeft.getTerm(), + SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), + SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ZERO)))); + } else if ("value := queue[id - 1][read_ptr];".equals(action1.toString()) + && "queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action2.toString())) { + final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + final var readPtrLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() + .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); + final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) + .findAny().get(); + hardcoded = SmtUtils.distinct(mMgdScript.getScript(), readPtrLeft.getTerm(), + SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), SmtUtils.minus(mMgdScript.getScript(), + idLeft.getTerm(), SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)))); + } else if ("queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action1.toString()) + && "queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action2.toString())) { + final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + hardcoded = SmtUtils.distinct(mMgdScript.getScript(), idLeft.getTerm(), idRight.getTerm()); + } else if ("queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action1.toString()) + && "value := queue[id - 1][read_ptr];".equals(action2.toString())) { + final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + final var readPtrRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() + .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); + final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) + .findAny().get(); + hardcoded = SmtUtils.distinct(mMgdScript.getScript(), readPtrRight.getTerm(), + SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), SmtUtils.minus(mMgdScript.getScript(), + idRight.getTerm(), SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)))); + } else if ("queue := queue[0 := queue[0][write_ptr[0] := idx]];".equals(action1.toString()) + && "value := queue[id - 1][read_ptr];".equals(action2.toString())) { + final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() + .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); + final var readPtrRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() + .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); + final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) + .findAny().get(); + hardcoded = SmtUtils.or(mMgdScript.getScript(), + SmtUtils.distinct(mMgdScript.getScript(), idRight.getTerm(), + SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)), + SmtUtils.distinct(mMgdScript.getScript(), readPtrRight.getTerm(), + SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), + SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ZERO)))); + } + if (hardcoded != null) { + mLogger.warn( + "Hardcoded independence condition for '" + action1 + "' and '" + action2 + "' is: " + hardcoded); + return deinstantiate(clause, thread1, thread2, hardcoded); + } + // first check the cache final var cached = mCache.get(new Pair<>(action1, action2)); if (cached != null) { From 436ddf1782a44b1bf13045f0c04064dd56b94a76 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Sat, 22 Jul 2023 14:33:56 +0200 Subject: [PATCH 089/124] remove unused variable --- .../icfgtochc/concurrent/ThreadModularHornClauseProvider.java | 1 - 1 file changed, 1 deletion(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 0d3ccc3e57b..e78a1549959 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -173,7 +173,6 @@ private PredicateInfo createInvariantPredicate() { protected Map createLocationMap(final IIcfg icfg) { final var result = new HashMap(); for (final var entry : icfg.getProcedureEntryNodes().entrySet()) { - final var errorNodes = icfg.getProcedureErrorNodes().get(entry.getKey()); final var initial = entry.getValue(); int counter = 0; From 25ec55fc6d2edca5d7e37461a3538ca5e1363a66 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 8 Sep 2023 15:58:13 +0200 Subject: [PATCH 090/124] mark unimplemented settings --- .../icfgtochc/preferences/IcfgToChcPreferenceInitializer.java | 2 ++ .../plugins/icfgtochc/preferences/IcfgToChcPreferences.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 8e0dc07dea6..47dc3db449a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -72,6 +72,7 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; public static final int DEF_THREADMODULAR_LEVEL = 2; + // TODO Currently unused public static final String LABEL_EXPLICIT_LOCATIONS = "Encode control locations explicitly"; public static final String DESC_EXPLICIT_LOCATIONS = "Control locations can be encoded symbolically " + "(as CHC variables), or explicitly (by using different predicate symbols)."; @@ -112,6 +113,7 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "all symmetric preference orders. If we break symmetry, more proofs are accepted."; public static final boolean DEF_BREAK_PREFORDER_SYMMETRY = true; + // TODO Currently unused public static final String LABEL_EXPLICIT_SLEEP = "Encode sleep sets explicitly"; public static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " + "or explicitly (by using different predicate symbols)."; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 3c16512bd78..395b05afffa 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -62,6 +62,7 @@ public int getThreadModularProofLevel() { return mPrefs.getInt(IcfgToChcPreferenceInitializer.LABEL_THREADMODULAR_LEVEL); } + // TODO Currently unused public boolean explicitLocations() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_LOCATIONS); } @@ -82,6 +83,7 @@ public boolean breakPreferenceOrderSymmetry() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_BREAK_PREFORDER_SYMMETRY); } + // TODO Currently unused public boolean explicitSleep() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); } From 711267059bb6726c091e6b983d0c7d2437d38ad1 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 11 Sep 2023 11:30:50 +0200 Subject: [PATCH 091/124] small settings cleanup --- .../IcfgToChcPreferenceInitializer.java | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 47dc3db449a..c934fddc767 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -65,68 +65,69 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize public static final String DESC_SPEC_MODE = "Describes how the specification for the program is given."; public static final SpecMode DEF_SPEC_MODE = SpecMode.POSTCONDITION; + // TODO Introduce PreferenceType.List? + public static final String LABEL_PARAMETRIC_TEMPLATES = "Templates for parametric program"; + private static final String DESC_PARAMETRIC_TEMPLATES = "Comma-separated list of procedures denoting thread " + + "templates of the parametric program. Leave empty for default behaviour (i.e., single template given " + + "by ULTIMATE.start in Boogie, main in C)."; + private static final String DEF_PARAMETRIC_TEMPLATES = ""; + + public static final String LABEL_PARAMETRIC_SINGLE_THREADS = "Single-instance threads"; + private static final String DESC_PARAMETRIC_SINGLE_THREADS = + "Comma-separated list of procedures for which a single thread is running in a parametric program."; + private static final String DEF_PARAMETRIC_SINGLE_THREADS = ""; + // SETTINGS FOR THREAD-MODULAR PROOFS // ------------------------------------------------------------------------ public static final String LABEL_THREADMODULAR_LEVEL = "Thread-Modular Proof Level"; - public static final String DESC_THREADMODULAR_LEVEL = "The level at which thread-modular proofs should be computed"; - public static final int DEF_THREADMODULAR_LEVEL = 2; + private static final String DESC_THREADMODULAR_LEVEL = + "The level at which thread-modular proofs should be computed"; + private static final int DEF_THREADMODULAR_LEVEL = 2; // TODO Currently unused public static final String LABEL_EXPLICIT_LOCATIONS = "Encode control locations explicitly"; - public static final String DESC_EXPLICIT_LOCATIONS = "Control locations can be encoded symbolically " + private static final String DESC_EXPLICIT_LOCATIONS = "Control locations can be encoded symbolically " + "(as CHC variables), or explicitly (by using different predicate symbols)."; - public static final boolean DEF_EXPLICIT_LOCATIONS = false; + private static final boolean DEF_EXPLICIT_LOCATIONS = false; public static final String LABEL_LIPTON_REDUCTION = "Apply Lipton reduction"; - public static final String DESC_LIPTON_REDUCTION = "If enabled, Lipton reduction is applied to simplify thread " + private static final String DESC_LIPTON_REDUCTION = "If enabled, Lipton reduction is applied to simplify thread " + "templates, before a thread-modular proof is computed."; - public static final boolean DEF_LIPTON_REDUCTION = false; + private static final boolean DEF_LIPTON_REDUCTION = false; public static final String LABEL_SKIP_ASSERT_EDGES = "Skip assert edges"; private static final String DESC_SKIP_ASSERT_EDGES = "If enabled, we do not directly encode unreachability of " + "error locations. Instead, the assertion condition is part of the safety clause."; private static final boolean DEF_SKIP_ASSERT_EDGES = true; - // TODO Introduce PreferenceType.List? - public static final String LABEL_PARAMETRIC_TEMPLATES = "Templates for parametric program"; - private static final String DESC_PARAMETRIC_TEMPLATES = "Comma-separated list of procedures denoting thread " - + "templates of the parametric program. Leave empty for default behaviour (i.e., single template given " - + "by ULTIMATE.start in Boogie, main in C)."; - private static final String DEF_PARAMETRIC_TEMPLATES = ""; - - public static final String LABEL_PARAMETRIC_SINGLE_THREADS = "Single-instance threads"; - private static final String DESC_PARAMETRIC_SINGLE_THREADS = - "Comma-separated list of procedures for which a single thread is running in a parametric program."; - private static final String DEF_PARAMETRIC_SINGLE_THREADS = ""; - // SETTINGS FOR SLEEP SET REDUCTION // ------------------------------------------------------------------------ public static final String LABEL_SLEEP_SET_REDUCTION = "Enable sleep set reduction"; - public static final String DESC_SLEEP_SET_REDUCTION = "If enabled, symbolic sleep set reduction is applied to the " + private static final String DESC_SLEEP_SET_REDUCTION = "If enabled, symbolic sleep set reduction is applied to the " + "program. This allows for more programs to be proven correct."; - public static final boolean DEF_SLEEP_SET_REDUCTION = true; + private static final boolean DEF_SLEEP_SET_REDUCTION = true; public static final String LABEL_BREAK_PREFORDER_SYMMETRY = "Break symmetry of preference order"; - public static final String DESC_BREAK_PREFORDER_SYMMETRY = "A straightforward encoding forces proofs to consider " + private static final String DESC_BREAK_PREFORDER_SYMMETRY = "A straightforward encoding forces proofs to consider " + "all symmetric preference orders. If we break symmetry, more proofs are accepted."; - public static final boolean DEF_BREAK_PREFORDER_SYMMETRY = true; + private static final boolean DEF_BREAK_PREFORDER_SYMMETRY = true; // TODO Currently unused public static final String LABEL_EXPLICIT_SLEEP = "Encode sleep sets explicitly"; - public static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " + private static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " + "or explicitly (by using different predicate symbols)."; - public static final boolean DEF_EXPLICIT_SLEEP = false; + private static final boolean DEF_EXPLICIT_SLEEP = false; public static final String LABEL_PREFERENCE_ORDER = "Preference order used for reduction"; - public static final PreferenceOrder DEF_PREFERENCE_ORDER = PreferenceOrder.SEQ_COMP; + private static final PreferenceOrder DEF_PREFERENCE_ORDER = PreferenceOrder.SEQ_COMP; public static final String LABEL_CONDITIONAL_INDEPENDENCE = "Conditional Independence"; - public static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; + private static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; public static final String LABEL_SEMICOMMUTATIVITY = "Use semi-commutativity"; - public static final boolean DEF_SEMICOMMUTATIVITY = true; + private static final boolean DEF_SEMICOMMUTATIVITY = true; public enum PreferenceOrder { SEQ_COMP, LOCKSTEP @@ -153,6 +154,10 @@ protected BaseUltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SPEC_MODE, DEF_SPEC_MODE, DESC_SPEC_MODE, PreferenceType.Combo, SpecMode.values()), + new UltimatePreferenceItem<>(LABEL_PARAMETRIC_TEMPLATES, DEF_PARAMETRIC_TEMPLATES, + DESC_PARAMETRIC_TEMPLATES, PreferenceType.String), + new UltimatePreferenceItem<>(LABEL_PARAMETRIC_SINGLE_THREADS, DEF_PARAMETRIC_SINGLE_THREADS, + DESC_PARAMETRIC_SINGLE_THREADS, PreferenceType.String), // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), @@ -162,10 +167,6 @@ protected BaseUltimatePreferenceItem[] initDefaultPreferences() { PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_SKIP_ASSERT_EDGES, DEF_SKIP_ASSERT_EDGES, DESC_SKIP_ASSERT_EDGES, PreferenceType.Boolean), - new UltimatePreferenceItem<>(LABEL_PARAMETRIC_TEMPLATES, DEF_PARAMETRIC_TEMPLATES, - DESC_PARAMETRIC_TEMPLATES, PreferenceType.String), - new UltimatePreferenceItem<>(LABEL_PARAMETRIC_SINGLE_THREADS, DEF_PARAMETRIC_SINGLE_THREADS, - DESC_PARAMETRIC_SINGLE_THREADS, PreferenceType.String), getSleepSetSettings() }; } From 4561965d29f6b909ac5d776c5b6fbcda72420434 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 11 Sep 2023 15:39:48 +0200 Subject: [PATCH 092/124] add setting for symmetry clauses --- .../ExtensibleHornClauseProvider.java | 4 +- .../ThreadModularHornClauseProvider.java | 59 ++++++++++++++++++- ...eepSetThreadModularHornClauseProvider.java | 4 ++ .../IcfgToChcPreferenceInitializer.java | 4 ++ .../preferences/IcfgToChcPreferences.java | 4 ++ 5 files changed, 70 insertions(+), 5 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java index f98e406ad01..9002db4af77 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ExtensibleHornClauseProvider.java @@ -51,8 +51,8 @@ public ExtensibleHornClauseProvider(final ManagedScript mgdScript, final HcSymbo mSymbolTable = symbolTable; } - protected final HornClauseBuilder createBuilder(final PredicateInfo predicate, final String comment) { - return new HornClauseBuilder(mManagedScript, mSymbolTable, Objects.requireNonNull(predicate), comment); + protected final HornClauseBuilder createBuilder(final PredicateInfo headPredicate, final String comment) { + return new HornClauseBuilder(mManagedScript, mSymbolTable, Objects.requireNonNull(headPredicate), comment); } protected final HornClauseBuilder createBuilder(final String comment) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index e78a1549959..d9ae6fdd513 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -298,6 +298,11 @@ protected List buildAllClauses() { } } + // add symmetry clauses, if enabled + if (mPrefs.useSymmetryClauses()) { + result.addAll(buildSymmetryClauses()); + } + // add safety clauses switch (mPrefs.specMode()) { case ASSERT_VIOLATIONS: @@ -425,6 +430,15 @@ protected boolean isSkippableAssertEdge(final IcfgEdge edge) { return errorLocs.contains(edge.getTarget()); } + private List getCandidateInstancesForClause(final String templateName) { + if (mPrefs.useSymmetryClauses()) { + // If symmetry clauses are used, we only generate clauses for the first instance. + return getInstances(templateName).stream().limit(1L).collect(Collectors.toList()); + } + // Otherwise we generate clauses for each instance. + return getInstances(templateName); + } + private List, Map, ThreadInstance>> getCartesianPrePostProduct(final IcfgEdge edge) { if (edge instanceof IIcfgForkTransitionThreadCurrent) { @@ -432,9 +446,9 @@ protected boolean isSkippableAssertEdge(final IcfgEdge edge) { final var forkEntry = mIcfg.getProcedureEntryNodes().get(forkCurrent.getNameOfForkedProcedure()); final var result = new ArrayList, Map, ThreadInstance>>(); - for (final var instance : getInstances(edge.getPrecedingProcedure())) { + for (final var instance : getCandidateInstancesForClause(edge.getPrecedingProcedure())) { final var preds = Map.of(instance, edge.getSource()); - for (final var forked : getInstances(forkCurrent.getNameOfForkedProcedure())) { + for (final var forked : getCandidateInstancesForClause(forkCurrent.getNameOfForkedProcedure())) { if (Objects.equals(instance, forked)) { continue; } @@ -448,7 +462,7 @@ protected boolean isSkippableAssertEdge(final IcfgEdge edge) { throw new UnsupportedOperationException("Joins not supported"); } - return getInstances(edge.getPrecedingProcedure()).stream() + return getCandidateInstancesForClause(edge.getPrecedingProcedure()).stream() .map(t -> new Triple<>(Map.of(t, edge.getSource()), Map.of(t, edge.getTarget()), t)) .collect(Collectors.toList()); } @@ -679,6 +693,45 @@ protected HornClauseBuilder buildNonInterferenceClause(final IIcfgTransition return clause; } + protected List buildSymmetryClauses() { + final var result = new ArrayList(); + + final var groups = mInstances.stream().collect(Collectors.groupingBy(ThreadInstance::getTemplateName)); + for (final var group : groups.values()) { + // skip trivial groups + if (group.size() <= 1) { + continue; + } + + for (int i = 0; i < group.size() - 1; ++i) { + final var current = group.get(i); + final var next = group.get(i + 1); + final var transposition = Map.of(current, next, next, current); + result.add(buildSymmetryClause(transposition)); + } + } + + return result; + } + + protected HornClauseBuilder buildSymmetryClause(final Map permutation) { + final var clause = createBuilder(mInvariantPredicate, "symmetry clause"); + final var bodyArgs = new ArrayList<>(mInvariantPredicate.getParameters()); + + for (final var entry : permutation.entrySet()) { + assert !entry.getKey().equals(entry.getValue()) : "Identity permutations should be omitted"; + assert entry.getKey().getTemplateName() + .equals(entry.getValue().getTemplateName()) : "Must not permute threads with different templates"; + assert permutation.containsKey(entry.getValue()) : "Not a permutation: " + permutation; + replaceThreadVariables(bodyArgs, entry.getValue(), mThreadSpecificVars.get(entry.getKey())); + } + + final var bodyTerms = bodyArgs.stream().map(v -> clause.getBodyVar(v).getTerm()).collect(Collectors.toList()); + clause.addBodyPredicate(mInvariantPredicate, bodyTerms); + + return clause; + } + protected void replaceThreadVariables(final List parameters, final ThreadInstance oldInstance, final List newVariables) { final var oldVariables = mThreadSpecificVars.get(oldInstance); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index ea2f9b76380..065bd322007 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -71,6 +71,10 @@ public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider se e -> e.getValue().values().stream().filter(this::isRelevantLocation).collect(Collectors.toList()))); if (mPrefs.breakPreferenceOrderSymmetry()) { + if (mPrefs.useSymmetryClauses()) { + throw new UnsupportedOperationException( + "Symmetry clauses cannot be combined with preference order symmetry breaking"); + } mIdVars = null; mPreferenceManager = new ExplicitPreferenceOrderManager(preferenceOrder, mScript, mLocationIndices); } else { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index c934fddc767..95ab8097031 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -85,6 +85,9 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize "The level at which thread-modular proofs should be computed"; private static final int DEF_THREADMODULAR_LEVEL = 2; + public static final String LABEL_SYMMETRY_CLAUSES = "Use symmetry clauses"; + private static final boolean DEF_SYMMETRY_CLAUSES = false; + // TODO Currently unused public static final String LABEL_EXPLICIT_LOCATIONS = "Encode control locations explicitly"; private static final String DESC_EXPLICIT_LOCATIONS = "Control locations can be encoded symbolically " @@ -161,6 +164,7 @@ protected BaseUltimatePreferenceItem[] initDefaultPreferences() { // Settings for thread-modular proofs new UltimatePreferenceItem<>(LABEL_THREADMODULAR_LEVEL, DEF_THREADMODULAR_LEVEL, DESC_THREADMODULAR_LEVEL, PreferenceType.Integer), + new UltimatePreferenceItem<>(LABEL_SYMMETRY_CLAUSES, DEF_SYMMETRY_CLAUSES, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_EXPLICIT_LOCATIONS, DEF_EXPLICIT_LOCATIONS, DESC_EXPLICIT_LOCATIONS, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_LIPTON_REDUCTION, DEF_LIPTON_REDUCTION, DESC_LIPTON_REDUCTION, diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index 395b05afffa..dd5c7319a70 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -62,6 +62,10 @@ public int getThreadModularProofLevel() { return mPrefs.getInt(IcfgToChcPreferenceInitializer.LABEL_THREADMODULAR_LEVEL); } + public boolean useSymmetryClauses() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_SYMMETRY_CLAUSES); + } + // TODO Currently unused public boolean explicitLocations() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_LOCATIONS); From dcd3a62bdbcf86332dc6e610dcfddfd7cf52d467 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 11 Sep 2023 15:42:29 +0200 Subject: [PATCH 093/124] prepare evaluation with symmetry clauses --- .../default/benchexec/sleep-threadmodular.xml | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index a9691a0dab5..e8523d5e181 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -75,6 +75,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From b633ca11446b3993a955c0d91cfa290e2877857f Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 12 Sep 2023 10:23:57 +0200 Subject: [PATCH 094/124] fix NullPointerException for clause without constraint --- .../plugins/icfgtochc/concurrent/HornClauseBuilder.java | 3 ++- .../uni_freiburg/informatik/ultimate/lib/chc/HornClause.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 9eef5ef7916..91432321bab 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -43,6 +43,7 @@ import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Sort; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; @@ -166,7 +167,7 @@ private Term substitute(final Term term) { private Term getSubstitutedConstraint() { if (mConstraints.isEmpty()) { - return null; + return mManagedScript.getScript().term(SMTLIBConstants.TRUE); } return substitute(SmtUtils.and(mManagedScript.getScript(), mConstraints)); } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java index 0d36237fcbc..67b1f6add19 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -122,7 +123,7 @@ private HornClause(final ManagedScript script, final HcSymbolTable symbolTable, mHornClauseSymbolTable = symbolTable; - mFormula = constraint; + mFormula = Objects.requireNonNull(constraint, "Constraint must not be null (use 'true' instead)"); mHeadIsFalse = headPred == null; mHeadPredicate = headPred; From 6de61bb98f6b045c198751dd76abc0c78fe4e16c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 12 Sep 2023 10:37:03 +0200 Subject: [PATCH 095/124] HornClause: remove unused ManagedScript parameter --- .../icfgtochc/ChcProviderForCalls.java | 18 ++++++++--------- .../concurrent/HornClauseBuilder.java | 7 +++---- .../ultimate/lib/chc/ChcTransferrer.java | 5 ++--- .../ultimate/lib/chc/HornClause.java | 20 ++++++++----------- .../source/smtparser/chc/HornClauseHead.java | 8 ++++---- 5 files changed, 26 insertions(+), 32 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java index c70c9a88b3f..60c6baa785d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/ChcProviderForCalls.java @@ -198,7 +198,7 @@ private void computeClausesForEntryPoints(final IIcfg throw new UnsupportedOperationException("implement this"); } - final HornClause chc = new HornClause(mMgdScript, mHcSymbolTable, constraintFinal, headPred, headVars, + final HornClause chc = new HornClause(mHcSymbolTable, constraintFinal, headPred, headVars, Collections.emptyList(), Collections.emptyList(), Collections.emptySet()); chc.setComment("Type: (not V) -> procEntry"); resultChcs.add(chc); @@ -243,8 +243,8 @@ private void computeClausesForExitPoints(final IIcfg< throw new UnsupportedOperationException("implement this"); } - final HornClause chc = new HornClause(mMgdScript, mHcSymbolTable, constraint, - Collections.singletonList(bodyPred), Collections.singletonList(firstPredArgs), bodyVars); + final HornClause chc = new HornClause(mHcSymbolTable, constraint, Collections.singletonList(bodyPred), + Collections.singletonList(firstPredArgs), bodyVars); chc.setComment("Type: entryProcExit(..., V) /\\ V -> false"); resultChcs.add(chc); @@ -492,8 +492,8 @@ private Collection computeChcForReturnEdge(final IIcfgReturnTransiti /* construct the horn clause and add it to the resulting chc set */ final Collection chcs = new ArrayList<>(); - chcs.add(new HornClause(mMgdScript, mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, - bodyPredToArguments, bodyVars)); + chcs.add(new HornClause(mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, bodyPredToArguments, + bodyVars)); return chcs; } @@ -644,8 +644,8 @@ private boolean assertNoFreeVars(final List headVars, final Set chcs = new ArrayList<>(); - chcs.add(new HornClause(mMgdScript, mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, - bodyPredToArguments, bodyVars)); + chcs.add(new HornClause(mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, bodyPredToArguments, + bodyVars)); return chcs; } @@ -781,8 +781,8 @@ private boolean assertNoFreeVars(final List headVars, final Set chcs = new ArrayList<>(2); - chcs.add(new HornClause(mMgdScript, mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, - bodyPredToArguments, bodyVars)); + chcs.add(new HornClause(mHcSymbolTable, constraintFinal, headPred, headVars, bodyPreds, bodyPredToArguments, + bodyVars)); return chcs; } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 91432321bab..43a55b0d63a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -131,13 +131,12 @@ public HornClause build() { HornClause clause; if (mHeadPredicate == null) { - clause = new HornClause(mManagedScript, mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, - mBodyVars); + clause = new HornClause(mSymbolTable, constraint, mBodyPreds, substitutedBodyArgs, mBodyVars); } else { final var headArgs = mHeadPredicate.getParameters().stream().map(this::getHeadVar).collect(Collectors.toList()); - clause = new HornClause(mManagedScript, mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, - mBodyPreds, substitutedBodyArgs, mBodyVars); + clause = new HornClause(mSymbolTable, constraint, mHeadPredicate.getPredicate(), headArgs, mBodyPreds, + substitutedBodyArgs, mBodyVars); } if (mComment != null) { clause.setComment(mComment); diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java index c582560abcd..7efb2678413 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/ChcTransferrer.java @@ -174,11 +174,10 @@ public HornClause transfer(final HornClause clause) { final var constraint = transfer(clause.getConstraintFormula()); if (clause.isHeadFalse()) { - return new HornClause(mTargetScript, mTargetSymbolTable, constraint, bodyPreds, bodyArgs, bodyVars); + return new HornClause(mTargetSymbolTable, constraint, bodyPreds, bodyArgs, bodyVars); } - return new HornClause(mTargetScript, mTargetSymbolTable, constraint, head, headVars, bodyPreds, bodyArgs, - bodyVars); + return new HornClause(mTargetSymbolTable, constraint, head, headVars, bodyPreds, bodyArgs, bodyVars); }); } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java index 67b1f6add19..ef1fbb37f0b 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/HornClause.java @@ -88,17 +88,15 @@ public class HornClause implements IRankedLetter { * @param bodyPreds * @param bodyPredToArguments */ - public HornClause(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, final Term constraint, - final List bodyPreds, final List> bodyPredToArguments, - final Set bodyVars) { - this(mgdScript, hcSymbolTable, constraint, null, Collections.emptyList(), bodyPreds, bodyPredToArguments, - bodyVars, false); + public HornClause(final HcSymbolTable hcSymbolTable, final Term constraint, final List bodyPreds, + final List> bodyPredToArguments, final Set bodyVars) { + this(hcSymbolTable, constraint, null, Collections.emptyList(), bodyPreds, bodyPredToArguments, bodyVars, false); } - public HornClause(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTable, final Term constraint, - final HcPredicateSymbol headPred, final List headVars, final List bodyPreds, + public HornClause(final HcSymbolTable hcSymbolTable, final Term constraint, final HcPredicateSymbol headPred, + final List headVars, final List bodyPreds, final List> bodyPredToArguments, final Set bodyVars) { - this(mgdScript, hcSymbolTable, constraint, headPred, headVars, bodyPreds, bodyPredToArguments, bodyVars, false); + this(hcSymbolTable, constraint, headPred, headVars, bodyPreds, bodyPredToArguments, bodyVars, false); assert headPred != null : "use other constructor for '... -> False' case"; } @@ -106,8 +104,6 @@ public HornClause(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTab * Constructor for a Horn clause of the form b1 /\ ... /\ bn /\ constraint --> h. Where b1 .. bn, and h, are * uninterpreted predicates and constraint is a Term. * - * @param script - * The script that will be used in TreeAutomizer (not the HornClauseParserScript) * @param symbolTable * @param constraint * @param headPred @@ -117,8 +113,8 @@ public HornClause(final ManagedScript mgdScript, final HcSymbolTable hcSymbolTab * @param dummy * dummy parameter to allow for an extra constructor */ - private HornClause(final ManagedScript script, final HcSymbolTable symbolTable, final Term constraint, - final HcPredicateSymbol headPred, final List headVars, final List bodyPreds, + private HornClause(final HcSymbolTable symbolTable, final Term constraint, final HcPredicateSymbol headPred, + final List headVars, final List bodyPreds, final List> bodyPredToArgs, final Set bodyVars, final boolean dummy) { mHornClauseSymbolTable = symbolTable; diff --git a/trunk/source/SmtParser/src/de/uni_freiburg/informatik/ultimate/source/smtparser/chc/HornClauseHead.java b/trunk/source/SmtParser/src/de/uni_freiburg/informatik/ultimate/source/smtparser/chc/HornClauseHead.java index f3d22bfa915..2d55f16a4af 100644 --- a/trunk/source/SmtParser/src/de/uni_freiburg/informatik/ultimate/source/smtparser/chc/HornClauseHead.java +++ b/trunk/source/SmtParser/src/de/uni_freiburg/informatik/ultimate/source/smtparser/chc/HornClauseHead.java @@ -110,14 +110,14 @@ public HornClause convertToHornClause(final ManagedScript solverScript, final Hc final List> bodyArgs = mBody.getPredicateToVars(symbolTable); if (mHead == null) { - return new HornClause(solverScript, symbolTable, getTransitionFormula(solverScript.getScript()), - bodySymbols, bodyArgs, bodyVars); + return new HornClause(symbolTable, getTransitionFormula(solverScript.getScript()), bodySymbols, bodyArgs, + bodyVars); } final List headVars = symbolTable.getHcHeadVarsForPredSym(headSymbol, false); - return new HornClause(solverScript, symbolTable, getTransitionFormula(solverScript.getScript()), headSymbol, - headVars, bodySymbols, bodyArgs, bodyVars); + return new HornClause(symbolTable, getTransitionFormula(solverScript.getScript()), headSymbol, headVars, + bodySymbols, bodyArgs, bodyVars); } /** From dd9be6704745c4ec6205fb0b53bdcf1582bcfc9a Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 12 Sep 2023 10:44:36 +0200 Subject: [PATCH 096/124] prepare evaluation --- .../default/benchexec/sleep-threadmodular.xml | 218 ++++++++++-------- 1 file changed, 124 insertions(+), 94 deletions(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index e8523d5e181..23ba38016fa 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -2,161 +2,191 @@ ${taskdef_path}/CHC_*.smt2 - - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + ../../../trunk/examples/threadmodular/regression/*/*.yml ../../../trunk/examples/svcomp/properties/unreach-call.prp From 413081681f424fe05429144cce149eb7144d0d9b Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 13 Sep 2023 11:20:25 +0200 Subject: [PATCH 097/124] prepare evaluation of yet-unsolved tasks --- releaseScripts/default/benchexec/sleep-threadmodular.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 23ba38016fa..9fbba9a5983 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -1,5 +1,5 @@ - + ${taskdef_path}/CHC_*.smt2 + + + ../../../trunk/examples/threadmodular/regression/unsolved.set + ../../../trunk/examples/svcomp/properties/unreach-call.prp + From f7999944384403c1ceeb3e695afb93b2418579f9 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 14 Sep 2023 10:28:19 +0200 Subject: [PATCH 098/124] ChcSolver: support passing predicate hints to eldarica --- .../plugins/chcsolver/ChcSolverObserver.java | 18 +++++++++++++++- .../ChcSolverPreferenceInitializer.java | 5 ++++- .../preferences/ChcSolverPreferences.java | 11 ++++++++++ .../lib/chc/EldaricaCliChcScript.java | 21 +++++++++++++++++-- .../ultimate/smtsolver/external/Executor.java | 14 +++++++++++-- 5 files changed, 63 insertions(+), 6 deletions(-) diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java index 568a5c68b1b..1a25602d105 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/ChcSolverObserver.java @@ -26,6 +26,8 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.chcsolver; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Set; import de.uni_freiburg.informatik.ultimate.core.lib.observers.BaseObserver; @@ -100,7 +102,7 @@ private IChcScript getBackend(final HornAnnot annotation) { switch (mPrefs.getBackend()) { case ELDARICA: // return new EldaricaChcScript(mServices, annotation.getScript().getScript()); - return new EldaricaCliChcScript(mServices, annotation.getScript()); + return new EldaricaCliChcScript(mServices, annotation.getScript(), getHintsFile()); case Z3: return createZ3Backend(); case TREEAUTOMIZER: @@ -113,6 +115,20 @@ private IChcScript getBackend(final HornAnnot annotation) { } } + private Path getHintsFile() { + final var hintsPath = mPrefs.getEldaricaHints(); + if (hintsPath == null) { + return null; + } + if (!Files.exists(hintsPath)) { + mLogger.warn("Specified file with eldarica hints does not exist: %s", hintsPath); + mLogger.warn("Starting eldarica without hints..."); + return null; + } + mLogger.warn("Passing given hints to eldarica: %s", hintsPath); + return hintsPath; + } + private SmtChcScript createZ3Backend() { // We use a fresh Z3 instance to solve the system. // In typical toolchains, the solver in the HornAnnot is often unsuitable: diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java index faa51061e31..776069a8812 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferenceInitializer.java @@ -60,6 +60,8 @@ public enum SolverBackend { public static final String LABEL_PRODUCE_UNSAT_CORES = "Produce UNSAT core if query is UNSAT"; private static final boolean DEF_PRODUCE_UNSAT_CORES = false; + public static final String LABEL_ELDARICA_HINTS_FILE = "Hints for eldarica"; + public ChcSolverPreferenceInitializer() { super(Activator.PLUGIN_ID, Activator.PLUGIN_NAME); } @@ -74,7 +76,8 @@ protected UltimatePreferenceItem[] initDefaultPreferences() { new UltimatePreferenceItem<>(LABEL_PRODUCE_MODEL, DEF_PRODUCE_MODEL, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_PRODUCE_DERIVATION, DEF_PRODUCE_DERIVATION, PreferenceType.Boolean), new UltimatePreferenceItem<>(LABEL_PRODUCE_UNSAT_CORES, DEF_PRODUCE_UNSAT_CORES, - PreferenceType.Boolean) }; + PreferenceType.Boolean), + new UltimatePreferenceItem<>(LABEL_ELDARICA_HINTS_FILE, "", PreferenceType.File) }; } public static IPreferenceProvider getPreferenceProvider(final IUltimateServiceProvider services) { diff --git a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java index 4a98f94dd64..db59fa5a73d 100644 --- a/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java +++ b/trunk/source/ChcSolver/src/de/uni_freiburg/informatik/ultimate/plugins/chcsolver/preferences/ChcSolverPreferences.java @@ -26,6 +26,9 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.chcsolver.preferences; +import java.nio.file.Path; +import java.nio.file.Paths; + import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; import de.uni_freiburg.informatik.ultimate.plugins.chcsolver.preferences.ChcSolverPreferenceInitializer.SolverBackend; @@ -56,4 +59,12 @@ public boolean produceUnsatCore() { public long getTimeout() { return mPrefs.getInt(ChcSolverPreferenceInitializer.LABEL_SOLVER_TIMEOUT); } + + public Path getEldaricaHints() { + final String value = mPrefs.getString(ChcSolverPreferenceInitializer.LABEL_ELDARICA_HINTS_FILE); + if (value == null || value.isEmpty()) { + return null; + } + return Paths.get(value); + } } diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java index b900dff513e..f669b5ea89e 100644 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java +++ b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/EldaricaCliChcScript.java @@ -28,6 +28,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.List; import java.util.Optional; import java.util.Set; @@ -54,6 +55,7 @@ public class EldaricaCliChcScript implements IChcScript { private final ILogger mLogger; private final ManagedScript mMgdScript; private final long mDefaultQueryTimeout; + private final Path mPredicates; private boolean mProduceModels = false; @@ -61,15 +63,21 @@ public class EldaricaCliChcScript implements IChcScript { private Model mLastModel = null; public EldaricaCliChcScript(final IUltimateServiceProvider services, final ManagedScript mgdScript) { - this(services, mgdScript, -1L); + this(services, mgdScript, null); } public EldaricaCliChcScript(final IUltimateServiceProvider services, final ManagedScript mgdScript, - final long defaultTimeout) { + final Path predicates) { + this(services, mgdScript, -1L, predicates); + } + + public EldaricaCliChcScript(final IUltimateServiceProvider services, final ManagedScript mgdScript, + final long defaultTimeout, final Path predicates) { mServices = services; mLogger = services.getLoggingService().getLogger(getClass()); mMgdScript = mgdScript; mDefaultQueryTimeout = defaultTimeout; + mPredicates = predicates; } @Override @@ -105,6 +113,12 @@ public LBool solve(final HcSymbolTable symbolTable, final List syste final var executor = new Executor(getCommand(tmpFile), mMgdScript.getScript(), mLogger, mServices, "eldarica", null, null, null, determineTimeout(timeout)); + if (mPredicates != null) { + // Skip the line in stdout that says: + // "---------------------------- Loading CEGAR hints -------------------------------" + executor.skipLine(); + } + mLastResult = executor.parseCheckSatResult(); mLastModel = (mLastResult == LBool.SAT && mProduceModels) ? executor.parseGetModelResult() : null; @@ -126,6 +140,9 @@ private String getCommand(final File file) { if (mProduceModels) { command += " -ssol"; } + if (mPredicates != null) { + command += " -hints:" + mPredicates; + } return command + " " + file.getAbsolutePath(); } diff --git a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/Executor.java b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/Executor.java index 37a8e707389..9533f8dd798 100644 --- a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/Executor.java +++ b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/Executor.java @@ -27,6 +27,7 @@ */ package de.uni_freiburg.informatik.ultimate.smtsolver.external; +import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; @@ -69,6 +70,7 @@ public class Executor { private BufferedWriter mWriter; private InputStream mStdErr; + private InputStream mStdOut; private final Script mScript; private final Parser mParser; @@ -132,7 +134,7 @@ private void createProcess() throws IOException { } final OutputStream stdin = mProcess.getOutputStream(); - final InputStream stdout = mProcess.getInputStream(); + mStdOut = mProcess.getInputStream(); if (mTimeout > 0) { mProcess.setCountdownToTermination(mTimeout); @@ -143,7 +145,7 @@ private void createProcess() throws IOException { mStdErr = mProcess.getErrorStream(); final SimpleSymbolFactory symfactory = new SimpleSymbolFactory(); - mLexer = new Lexer(new InputStreamReader(stdout)); + mLexer = new Lexer(new InputStreamReader(mStdOut)); mLexer.setSymbolFactory(symfactory); final OutputStream underlying; @@ -163,6 +165,14 @@ private void createProcess() throws IOException { } } + public String skipLine() { + try { + return new BufferedReader(new InputStreamReader(mStdOut)).readLine(); + } catch (final IOException e) { + throw convertIOException(e); + } + } + public void input(final String in) { if (mLogger.isDebugEnabled()) { mLogger.debug(getLogStringPrefix() + " " + in); From 2ffed6393be955fcd53afda63505905ba59b16ed Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 00:55:00 +0100 Subject: [PATCH 099/124] add test suite for thread-modular proofs with sleep set reduction --- .gitignore | 1 + .../parameterized/SleepExplicit-Eldarica.epf | 41 ++++ .../bpl/parameterized/SleepExplicit-Golem.epf | 41 ++++ .../bpl/parameterized/SleepExplicit-Z3.epf | 41 ++++ .../parameterized/ThreadModularVerifier.xml | 10 + .../bpl/parameterized/add-sub-k/add-sub-k.bpl | 15 ++ .../bpl/parameterized/add-sub-k/add-sub-k.yml | 22 ++ .../add-sub-positive-k/add-sub-positive-k.bpl | 16 ++ .../add-sub-positive-k/add-sub-positive-k.yml | 22 ++ .../bluetooth-better/bluetooth-better.bpl | 44 ++++ .../bluetooth-better/bluetooth-better.yml | 22 ++ .../equalsum-fork/equalsum-fork.bpl | 50 +++++ .../equalsum-fork/equalsum-fork.yml | 23 ++ .../equalsum-ghost/equalsum-ghost.bpl | 32 +++ .../equalsum-ghost/equalsum-ghost.yml | 22 ++ .../bpl/parameterized/inc-bdec/inc-bdec.bpl | 15 ++ .../bpl/parameterized/inc-bdec/inc-bdec.yml | 21 ++ .../inc-dec-eq0-locked-assert.bpl | 22 ++ .../inc-dec-eq0-locked-assert.yml | 22 ++ .../inc-dec-eq0-locked/inc-dec-eq0-locked.bpl | 22 ++ .../inc-dec-eq0-locked/inc-dec-eq0-locked.yml | 22 ++ .../parameterized/inc-dec-eq0/inc-dec-eq0.bpl | 13 ++ .../parameterized/inc-dec-eq0/inc-dec-eq0.yml | 22 ++ .../inc-dec-geq0/inc-dec-geq0.bpl | 13 ++ .../inc-dec-geq0/inc-dec-geq0.yml | 22 ++ .../parameterized/line-queue/line-queue.bpl | 59 +++++ .../parameterized/line-queue/line-queue.yml | 24 ++ .../bpl/parameterized/lock/lock.bpl | 30 +++ .../bpl/parameterized/lock/lock.yml | 22 ++ .../bpl/parameterized/mutex-3/mutex-3.bpl | 17 ++ .../bpl/parameterized/mutex-3/mutex-3.yml | 22 ++ .../bpl/parameterized/mutex-4/mutex-4.bpl | 17 ++ .../bpl/parameterized/mutex-4/mutex-4.yml | 22 ++ .../bpl/parameterized/mutex-5/mutex-5.bpl | 17 ++ .../bpl/parameterized/mutex-5/mutex-5.yml | 22 ++ .../mutex-unbounded/mutex-unbounded.bpl | 14 ++ .../mutex-unbounded/mutex-unbounded.yml | 22 ++ .../notify-listeners/notify-listeners.bpl | 44 ++++ .../notify-listeners/notify-listeners.yml | 23 ++ .../numbered-array/numbered-array.bpl | 17 ++ .../numbered-array/numbered-array.yml | 21 ++ .../thread-pooling/thread-pooling.bpl | 46 ++++ .../thread-pooling/thread-pooling.yml | 21 ++ .../bpl/parameterized/ticket/ticket.bpl | 32 +++ .../bpl/parameterized/ticket/ticket.yml | 22 ++ .../test/decider/ChcTestResultDecider.java | 2 +- .../SleepThreadModularChcTestSuite.java | 206 ++++++++++++++++++ 47 files changed, 1317 insertions(+), 1 deletion(-) create mode 100644 trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf create mode 100644 trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf create mode 100644 trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf create mode 100644 trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/lock/lock.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/lock/lock.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/ticket/ticket.bpl create mode 100644 trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml create mode 100644 trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java diff --git a/.gitignore b/.gitignore index cc8c2c9e8ce..b888d587d14 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,7 @@ trunk/examples/concurrent/bpl/VMCAI2021/generated/*.yml trunk/examples/concurrent/bpl/weaver-benchmarks/generated/**/*.bpl trunk/examples/concurrent/bpl/weaver-benchmarks/generated/**/*.yml trunk/examples/concurrent/bpl/weaver-benchmarks/weaver +trunk/examples/concurrent/bpl/parameterized/*/CHC*.smt2 **/.metadata/* **/.settings/* **/target/* diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf new file mode 100644 index 00000000000..d06257bb32e --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf @@ -0,0 +1,41 @@ +#Thu May 25 14:24:13 CEST 2023 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc= +# Settings for the program +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC +# Settings for sleep sets +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true +# Other settings +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Apply\ Lipton\ reduction=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ control\ locations\ explicitly=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ sleep\ sets\ explicitly=false +@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver= +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/CHC\ solver\ backend=ELDARICA +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=true +@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter= +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true +@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder= +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement +@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3 +file_export_version=3.0 diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf new file mode 100644 index 00000000000..204060959c6 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf @@ -0,0 +1,41 @@ +#Thu May 25 14:24:13 CEST 2023 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc= +# Settings for the program +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC +# Settings for sleep sets +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true +# Other settings +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Apply\ Lipton\ reduction=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ control\ locations\ explicitly=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ sleep\ sets\ explicitly=false +@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver= +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/CHC\ solver\ backend=GOLEM +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=false +@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter= +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true +@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder= +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement +@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3 +file_export_version=3.0 diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf new file mode 100644 index 00000000000..dca3cb84999 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf @@ -0,0 +1,41 @@ +#Thu May 25 14:24:13 CEST 2023 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc= +# Settings for the program +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC +# Settings for sleep sets +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true +# Other settings +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Apply\ Lipton\ reduction=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ control\ locations\ explicitly=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ sleep\ sets\ explicitly=false +@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver= +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/CHC\ solver\ backend=Z3 +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=true +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=false +@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter= +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true +/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true +@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3 +file_export_version=3.0 + + +\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder= +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false +/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement +@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3 +file_export_version=3.0 diff --git a/trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml b/trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml new file mode 100644 index 00000000000..ebd05ee0c64 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml @@ -0,0 +1,10 @@ + + Ultimate Toolchain + + + + + + + + diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.bpl b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.bpl new file mode 100644 index 00000000000..6901d6774d5 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.bpl @@ -0,0 +1,15 @@ +//#Safe + +var x : int; + +procedure ULTIMATE.start() +modifies x; +free requires x == 0; +free ensures x == 0; +{ + var k : int; + + havoc k; + x := x + k; + x := x - k; +} diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml new file mode 100644 index 00000000000..ec88e261555 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'add-sub-k.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.bpl b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.bpl new file mode 100644 index 00000000000..92c4ec1eb66 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.bpl @@ -0,0 +1,16 @@ +//#Safe + +var x : int; + +procedure ULTIMATE.start() +modifies x; +free requires x == 0; +free ensures x == 0; +{ + var k : int; + + havoc k; + assume k >= 0; + x := x + k; + x := x - k; +} diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml new file mode 100644 index 00000000000..c069c28c28a --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'add-sub-positive-k.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.bpl b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.bpl new file mode 100644 index 00000000000..0ca93ed8328 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.bpl @@ -0,0 +1,44 @@ +//#Safe + +var stoppingFlag, stoppingEvent, stopped : bool; +var pendingIo : int; + +procedure ULTIMATE.start() +free requires pendingIo == 1 && !stopped && !stoppingEvent && !stoppingFlag; +modifies stoppingEvent, pendingIo; +{ + // enter + atomic { + assume !stoppingFlag; + pendingIo := pendingIo + 1; + } + + // do work + assert !stopped; + + // exit + atomic { + pendingIo := pendingIo - 1; + if (pendingIo == 0) { + stoppingEvent := true; + } + } +} + +procedure server() +free requires !stopped; +modifies stoppingFlag, stoppingEvent, stopped, pendingIo; +{ + stoppingFlag := true; + + // close + atomic { + pendingIo := pendingIo - 1; + if (pendingIo == 0) { + stoppingEvent := true; + } + } + + assume stoppingEvent; + stopped := true; +} diff --git a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml new file mode 100644 index 00000000000..b0e8fba9413 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'bluetooth-better.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: server + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.bpl b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.bpl new file mode 100644 index 00000000000..a265eda45ab --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.bpl @@ -0,0 +1,50 @@ +//#Safe + +var A : [int]int; +var n : int; + +var x, y, i, j, m : int; + +procedure ULTIMATE.start() +modifies x,y; +{ + var c : int; + + assume 0 <= i && i < j && j < m; + + // fork m threads + c := 0; + while (c < m) { + fork c thread(c); + c := c + 1; + } + + // join m threads + c := 0; + while (c < m) { + join c; + c := c + 1; + } + + assert x == y; +} + +procedure thread(id : int) +modifies x, y; +{ + var sum, idx : int; + sum := 0; + idx := 0; + + while (idx < n) { + sum := sum + A[idx]; + idx := idx + 1; + } + + if (id == i) { + x := sum; + } + if (id == j) { + y := sum; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml new file mode 100644 index 00000000000..a8ac04404ca --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml @@ -0,0 +1,23 @@ +format_version: '2.0' + +input_files: 'equalsum-fork.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + Concurrency mode: SINGLE_MAIN_THREAD + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.bpl b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.bpl new file mode 100644 index 00000000000..af4c5113b26 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.bpl @@ -0,0 +1,32 @@ +//#Safe + +var A : [int]int; +var n : int; + +var id_ctr : int; +var i, sum_i : int; +var terminated_i : bool; + +procedure ULTIMATE.start() +free requires !terminated_i; +modifies id_ctr, sum_i, terminated_i; +{ + var id, sum, idx : int; + atomic { id := id_ctr; id_ctr := id_ctr + 1; } + + sum := 0; + idx := 0; + + while (idx < n) { + sum := sum + A[idx]; + idx := idx + 1; + } + + atomic { + if (id == i) { + sum_i := sum; + terminated_i := true; + } + } + assert (terminated_i ==> sum == sum_i); +} diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml new file mode 100644 index 00000000000..93d3235a312 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'equalsum-ghost.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.bpl b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.bpl new file mode 100644 index 00000000000..f1ec76411e6 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.bpl @@ -0,0 +1,15 @@ +//#Safe + +var x : int; + +procedure ULTIMATE.start() +modifies x; +free requires x == 0; +free ensures x == 0; +{ + x := x + 1; + atomic { + assume x > 0; + x := x - 1; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml new file mode 100644 index 00000000000..3df1a227646 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml @@ -0,0 +1,21 @@ +format_version: '2.0' + +input_files: 'inc-bdec.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.bpl b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.bpl new file mode 100644 index 00000000000..44e92278dde --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.bpl @@ -0,0 +1,22 @@ +//#Safe + +var x : int; +var lock : bool; + +procedure thread() +free requires x == 0; +modifies x, lock; +{ + atomic { assume !lock; lock := true; } + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + x := x - 1; + x := x - 1; + x := x - 1; + x := x - 1; + assert x == 0; + lock := false; +} + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml new file mode 100644 index 00000000000..9c8a7388451 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'inc-dec-eq0-locked-assert.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.bpl b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.bpl new file mode 100644 index 00000000000..2f2dd0932f6 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.bpl @@ -0,0 +1,22 @@ +//#Safe + +var x : int; +var lock : bool; + +procedure thread() +free requires x == 0; +free ensures x == 0; +modifies x, lock; +{ + atomic { assume !lock; lock := true; } + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + x := x - 1; + x := x - 1; + x := x - 1; + x := x - 1; + lock := false; +} + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml new file mode 100644 index 00000000000..e79199cc0af --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'inc-dec-eq0-locked.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.bpl b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.bpl new file mode 100644 index 00000000000..362c51e977e --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.bpl @@ -0,0 +1,13 @@ +//#Safe + +var x : int; + +procedure thread() +free requires x == 0; +free ensures x == 0; +modifies x; +{ + x := x + 1; + x := x - 1; +} + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml new file mode 100644 index 00000000000..161f8bd6eee --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'inc-dec-eq0.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.bpl b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.bpl new file mode 100644 index 00000000000..d1469865325 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.bpl @@ -0,0 +1,13 @@ +//#Safe + +var x : int; + +procedure thread() +free requires x == 0; +modifies x; +{ + x := x + 1; + x := x - 1; + assert x >= 0; +} + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml new file mode 100644 index 00000000000..d9481da80d6 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'inc-dec-geq0.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.bpl b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.bpl new file mode 100644 index 00000000000..f8723a14581 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.bpl @@ -0,0 +1,59 @@ +//#Safe + +var ctr : int; + +var queue : [int][int]int; +var write_ptr : [int]int; + +function { :const_array } init(value : int) returns ([int]int); + +procedure source() +free requires ctr == 1 && write_ptr == init(0); +modifies queue, write_ptr; +{ + var idx : int; + + idx := 0; + while (true) { + // enqueue values 0, 1, 2, ... + queue[0][write_ptr[0]] := idx; + write_ptr[0] := write_ptr[0] + 1; + + idx := idx + 1; + } +} + +procedure ULTIMATE.start() +free requires ctr == 1 && write_ptr == init(0); +modifies ctr, queue, write_ptr; +{ + var id : int; + var read_ptr : int; + var value : int; + var prev : int; + + // take thread ID + atomic { + id := ctr; + ctr := ctr + 1; + } + + // initialize pointer to input queue + read_ptr := 0; + + prev := -1; + while (true) { + // dequeue from input queue + assume read_ptr < write_ptr[id-1]; + value := queue[id-1][read_ptr]; + read_ptr := read_ptr + 1; + + // check values are increasing + assert value > prev; + prev := value; + + // forward value to output queue + queue[id][write_ptr[id]] := value; + write_ptr[id] := write_ptr[id]+1; + } +} \ No newline at end of file diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml new file mode 100644 index 00000000000..d59dfddef4a --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml @@ -0,0 +1,24 @@ +format_version: '2.0' + +input_files: 'line-queue.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: source + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Conditional Independence: "PRECOMPUTED_CONDITIONS" + Use semi-commutativity: true + diff --git a/trunk/examples/concurrent/bpl/parameterized/lock/lock.bpl b/trunk/examples/concurrent/bpl/parameterized/lock/lock.bpl new file mode 100644 index 00000000000..0704db9b794 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/lock/lock.bpl @@ -0,0 +1,30 @@ +//#Safe + +var lock : bool; +var ctr : int; +var x : int; + +procedure ULTIMATE.start() +free requires ctr == 0; +modifies ctr, lock, x; +{ + atomic { + assume !lock; + lock := true; + ctr := ctr + 1; + } + + // critical section + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + + // no one else is in the critical section + assert ctr < 2; + + atomic { + lock := false; + ctr := ctr - 1; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml b/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml new file mode 100644 index 00000000000..409db7ff3c9 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'lock.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 1 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "PRECOMPUTED_CONDITIONS" + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.bpl b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.bpl new file mode 100644 index 00000000000..c5d04234790 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.bpl @@ -0,0 +1,17 @@ +//#Safe + +var ctr : int; + +procedure ULTIMATE.start() +free requires ctr == 0; +modifies ctr; +{ + while (*) { + atomic { + assume ctr < 3; + ctr := ctr + 1; + } + assert ctr != 0; + ctr := ctr - 1; + } +} \ No newline at end of file diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml new file mode 100644 index 00000000000..df8ab0a0bcd --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'mutex-3.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.bpl b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.bpl new file mode 100644 index 00000000000..4862288edcd --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.bpl @@ -0,0 +1,17 @@ +//#Safe + +var ctr : int; + +procedure ULTIMATE.start() +free requires ctr == 0; +modifies ctr; +{ + while (*) { + atomic { + assume ctr < 4; + ctr := ctr + 1; + } + assert ctr != 0; + ctr := ctr - 1; + } +} \ No newline at end of file diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml new file mode 100644 index 00000000000..89ee3beea97 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'mutex-4.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.bpl b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.bpl new file mode 100644 index 00000000000..f8c89ac9d46 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.bpl @@ -0,0 +1,17 @@ +//#Safe + +var ctr : int; + +procedure ULTIMATE.start() +free requires ctr == 0; +modifies ctr; +{ + while (*) { + atomic { + assume ctr < 5; + ctr := ctr + 1; + } + assert ctr != 0; + ctr := ctr - 1; + } +} \ No newline at end of file diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml new file mode 100644 index 00000000000..5f057126526 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'mutex-5.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.bpl b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.bpl new file mode 100644 index 00000000000..fe59f8c0c71 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.bpl @@ -0,0 +1,14 @@ +//#Safe + +var ctr : int; + +procedure ULTIMATE.start() +free requires ctr == 0; +modifies ctr; +{ + while (*) { + ctr := ctr + 1; + assert ctr != 0; + ctr := ctr - 1; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml new file mode 100644 index 00000000000..3efe21a5986 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'mutex-unbounded.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.bpl b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.bpl new file mode 100644 index 00000000000..3b948543b17 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.bpl @@ -0,0 +1,44 @@ +//#Safe + +var notifications : [int]int; +var current : int; + +procedure notifier() +modifies notifications, current; +{ + var prev, data : int; + prev := 0; + + while (*) { + // generate data + havoc data; + assume data > prev; + prev := data; + + // notify listeners of new data + notifications[current] := data; + current := current + 1; + } +} + +// listener threads +procedure ULTIMATE.start() +{ + var idx : int; + var prev, msg : int; + + // begin listening + idx := current; + prev := 0; + + while (*) { + // receive notification of new data (msg) + assume idx < current; + msg := notifications[idx]; + idx := idx + 1; + + // check that notifications are as expected + assert prev < msg; + prev := msg; + } +} \ No newline at end of file diff --git a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml new file mode 100644 index 00000000000..655c86c9658 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml @@ -0,0 +1,23 @@ +format_version: '2.0' + +input_files: 'notify-listeners.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: notifier + + # Thread modularity level + Thread-Modular Proof Level: 1 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Use semi-commutativity: true + diff --git a/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.bpl b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.bpl new file mode 100644 index 00000000000..d8aae1a480b --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.bpl @@ -0,0 +1,17 @@ +//#Safe + +var a : [int]int; +var ctr : int; + +procedure ULTIMATE.start() +modifies ctr, a; +{ + var id : int; + atomic { + id := ctr; + ctr := ctr + 1; + } + + a[id] := id; + assert a[id] == id; +} diff --git a/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml new file mode 100644 index 00000000000..3b5745d7b28 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml @@ -0,0 +1,21 @@ +format_version: '2.0' + +input_files: 'numbered-array.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + diff --git a/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.bpl b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.bpl new file mode 100644 index 00000000000..fe1c8535de8 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.bpl @@ -0,0 +1,46 @@ +//#Safe +// Source: https://dl.acm.org/doi/10.1145/2676726.2677012 + +var len : int; // total number of tasks +var tasks : [int]int; // array of tasks +var next : int; // position of next available task block +var m : bool; // lock protecting next + +procedure ULTIMATE.start() +modifies next, m, tasks; +{ + var c : int; // position of current task + var end : int; // position of last task in acquired block + + var x : int; // local variable for task processing + + // acquire block of tasks + atomic { assume m == false; m := true; } // lock(m) + c := next; + next := next + 10; + if (next <= len) { + end := next; + } else { + end := len; + } + m := false; // unlock(m) + + // perform block of tasks + while (c < end) { + tasks[c] := 0; // mark task c as started + + // work on task c + x := c; + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + x := x + 1; + + tasks[c] := 1; // mark task c as finished + assert tasks[c] == 1; // no other thread has started task c + c := c + 1; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml new file mode 100644 index 00000000000..f09530c7a4f --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml @@ -0,0 +1,21 @@ +format_version: '2.0' + +input_files: 'thread-pooling.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.bpl b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.bpl new file mode 100644 index 00000000000..611b8d9ab84 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.bpl @@ -0,0 +1,32 @@ +//#Safe + +var s, t : int; +var crit : bool; + +procedure ULTIMATE.start() +free requires s <= t && !crit; +modifies s, t, crit; +{ + var m : int; + + // request + atomic { + m := t; + t := t + 1; + } + + // failure + assert m > s || !crit; + + // enter + atomic { + assume m <= s; + crit := true; + } + + // leave + atomic { + s := s + 1; + crit := false; + } +} diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml new file mode 100644 index 00000000000..0e645c5de74 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml @@ -0,0 +1,22 @@ +format_version: '2.0' + +input_files: 'ticket.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "OFF" + diff --git a/trunk/source/Library-UltimateTest/src/de/uni_freiburg/informatik/ultimate/test/decider/ChcTestResultDecider.java b/trunk/source/Library-UltimateTest/src/de/uni_freiburg/informatik/ultimate/test/decider/ChcTestResultDecider.java index 4571e2119cf..d07354bc5c3 100644 --- a/trunk/source/Library-UltimateTest/src/de/uni_freiburg/informatik/ultimate/test/decider/ChcTestResultDecider.java +++ b/trunk/source/Library-UltimateTest/src/de/uni_freiburg/informatik/ultimate/test/decider/ChcTestResultDecider.java @@ -49,7 +49,7 @@ public ChcTestResultDecider(final UltimateRunDefinition ultimateRunDefinition, } @Override - public SMTLibExpectedResultFinder constructExpectedResultFinder() { + public IExpectedResultFinder constructExpectedResultFinder() { return new SMTLibExpectedResultFinder<>(ChcOverallResult.UNKNOWN, ChcOverallResult.SAT, ChcOverallResult.UNSAT); } diff --git a/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java b/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java new file mode 100644 index 00000000000..eb67a2121af --- /dev/null +++ b/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java @@ -0,0 +1,206 @@ +/* + * Copyright (C) 2024 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * Copyright (C) 2024 University of Freiburg + * + * This file is part of the ULTIMATE Regression Test Library. + * + * The ULTIMATE Regression Test Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The ULTIMATE Regression Test Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the ULTIMATE Regression Test Library. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify the ULTIMATE Regression Test Library, or any covered work, by linking + * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), + * containing parts covered by the terms of the Eclipse Public License, the + * licensors of the ULTIMATE Regression Test Library grant you additional permission + * to convey the resulting work. + */ +package de.uni_freiburg.informatik.ultimate.regressiontest.generic; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.yaml.snakeyaml.Yaml; + +import de.uni_freiburg.informatik.ultimate.test.UltimateRunDefinition; +import de.uni_freiburg.informatik.ultimate.test.UltimateRunDefinition.NamedServiceCallback; +import de.uni_freiburg.informatik.ultimate.test.UltimateTestCase; +import de.uni_freiburg.informatik.ultimate.test.UltimateTestSuite; +import de.uni_freiburg.informatik.ultimate.test.decider.ChcTestResultDecider; +import de.uni_freiburg.informatik.ultimate.test.decider.ITestResultDecider; +import de.uni_freiburg.informatik.ultimate.test.decider.expectedresult.IExpectedResultFinder; +import de.uni_freiburg.informatik.ultimate.test.decider.overallresult.ChcOverallResult; +import de.uni_freiburg.informatik.ultimate.test.reporting.IIncrementalLog; +import de.uni_freiburg.informatik.ultimate.test.reporting.ITestSummary; +import de.uni_freiburg.informatik.ultimate.test.util.TestUtil; +import de.uni_freiburg.informatik.ultimate.test.util.UltimateRunDefinitionGenerator; + +public class SleepThreadModularChcTestSuite extends UltimateTestSuite { + // @formatter:off + private static final String[] SETTINGS = { + "examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf", + "examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf", + "examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf", + }; + // @formatter:on + private static final String TOOLCHAIN = "examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml"; + private static final String DIRECTORY = "examples/concurrent/bpl/parameterized/"; + private static final String TASKDEF_REGEX = ".*\\.yml"; + private static final int DEFAULT_TIMEOUT = 60; + + @Override + protected Collection createTestCases() { + final File toolchainFile = UltimateRunDefinitionGenerator.getFileFromTrunkDir(TOOLCHAIN); + final Collection selectedYamlFiles = TestUtil.getFilesRegex( + UltimateRunDefinitionGenerator.getFileFromTrunkDir(DIRECTORY), new String[] { TASKDEF_REGEX }); + + final List result = new ArrayList<>(); + for (final var taskDefFile : selectedYamlFiles) { + final var taskDefinition = parseTaskDefinition(taskDefFile); + final String bplFilename = (String) taskDefinition.get("input_files"); + final Path bplPath = taskDefFile.toPath().getParent().resolve(bplFilename); + + for (final String settingsPath : SETTINGS) { + final File settingsFile = UltimateRunDefinitionGenerator.getFileFromTrunkDir(settingsPath); + final var urd = new UltimateRunDefinition(bplPath.toFile(), settingsFile, toolchainFile, + getTimeout(taskDefinition), applySettings(taskDefFile, taskDefinition)); + result.add(new UltimateTestCase(constructITestResultDecider(urd, taskDefinition), urd, List.of())); + } + } + + return result; + } + + private static Map parseTaskDefinition(final File taskDefFile) { + try (var stream = new FileInputStream(taskDefFile)) { + return new Yaml().load(stream); + } catch (final IOException e) { + throw new AssertionError(e); + } + } + + private static ITestResultDecider constructITestResultDecider(final UltimateRunDefinition ultimateRunDefinition, + final Map taskDefinition) { + return new ChcTestResultDecider(ultimateRunDefinition, false) { + @Override + public IExpectedResultFinder constructExpectedResultFinder() { + return new ExpectedResultFinder(taskDefinition); + } + }; + } + + private static class ExpectedResultFinder implements IExpectedResultFinder { + private final ExpectedResultFinderStatus mStatus; + private final ChcOverallResult mExpected; + + public ExpectedResultFinder(final Map taskDefinition) { + final var propertyDef = ((Collection>) taskDefinition.get("properties")).stream() + .filter(propEntry -> ((String) propEntry.get("property_file")).endsWith("unreach-call.prp")) + .findFirst(); + if (propertyDef.isEmpty()) { + mStatus = ExpectedResultFinderStatus.NO_EXPECTED_RESULT_FOUND; + mExpected = null; + } else { + final var expected = propertyDef.get().get("expected_verdict").toString(); + switch (expected) { + case "sat": + case "true": + mExpected = ChcOverallResult.SAT; + mStatus = ExpectedResultFinderStatus.EXPECTED_RESULT_FOUND; + break; + case "unsat": + mExpected = ChcOverallResult.UNSAT; + mStatus = ExpectedResultFinderStatus.EXPECTED_RESULT_FOUND; + break; + case "unknown": + mExpected = ChcOverallResult.UNKNOWN; + mStatus = ExpectedResultFinderStatus.EXPECTED_RESULT_FOUND; + break; + default: + mExpected = null; + mStatus = ExpectedResultFinderStatus.NO_EXPECTED_RESULT_FOUND; + } + } + } + + @Override + public void findExpectedResult(final UltimateRunDefinition ultimateRunDefinition) { + // already done in constructor + } + + @Override + public ExpectedResultFinderStatus getExpectedResultFinderStatus() { + return mStatus; + } + + @Override + public String getExpectedResultFinderMessage() { + return mExpected.toString(); + } + + @Override + public ChcOverallResult getExpectedResult() { + return mExpected; + } + } + + @Override + protected ITestSummary[] constructTestSummaries() { + return new ITestSummary[0]; + } + + @Override + protected IIncrementalLog[] constructIncrementalLog() { + return new IIncrementalLog[0]; + } + + private static long getTimeout(final Map taskDefinition) { + if (taskDefinition.containsKey("options")) { + final var options = (Map) taskDefinition.get("options"); + if (options.containsKey("timeout")) { + return (int) options.get("timeout") * 1000L; + } + } + return DEFAULT_TIMEOUT * 1000L; + } + + private NamedServiceCallback applySettings(final File taskDefFile, final Map taskDefinition) { + final var options = (Map) taskDefinition.get("options"); + if (options == null) { + return null; + } + final String[] pluginIds = options.keySet().stream() + .filter(s -> s.startsWith("de.uni_freiburg.informatik.ultimate")).toArray(String[]::new); + return new NamedServiceCallback(taskDefFile.getName(), services -> { + final var layer = services.registerPreferenceLayer(getClass(), pluginIds); + for (final var plugin : pluginIds) { + final var preferences = layer.getPreferenceProvider(plugin); + for (final var entry : ((Map) options.get(plugin)).entrySet()) { + final Object value; + if (entry.getValue() instanceof Map || entry.getValue() instanceof List) { + value = new Yaml().dump(entry.getValue()); + } else { + value = entry.getValue(); + } + preferences.put(entry.getKey(), value); + } + } + return layer; + }); + } +} From 9d470712b834817d52600b0204fc6898a9fdd5e8 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 02:11:29 +0100 Subject: [PATCH 100/124] switch to new ISymbolicIndependenceRelation --- .../parameterized/SleepExplicit-Eldarica.epf | 2 +- .../bpl/parameterized/SleepExplicit-Golem.epf | 2 +- .../bpl/parameterized/SleepExplicit-Z3.epf | 2 +- .../bpl/parameterized/add-sub-k/add-sub-k.yml | 2 +- .../add-sub-positive-k/add-sub-positive-k.yml | 2 +- .../equalsum-fork/equalsum-fork.yml | 2 +- .../equalsum-ghost/equalsum-ghost.yml | 2 +- .../inc-dec-eq0-locked-assert.yml | 2 +- .../inc-dec-eq0-locked/inc-dec-eq0-locked.yml | 2 +- .../parameterized/inc-dec-eq0/inc-dec-eq0.yml | 2 +- .../inc-dec-geq0/inc-dec-geq0.yml | 2 +- .../parameterized/line-queue/line-queue.yml | 1 - .../bpl/parameterized/lock/lock.yml | 1 - .../bpl/parameterized/mutex-3/mutex-3.yml | 2 +- .../bpl/parameterized/mutex-4/mutex-4.yml | 2 +- .../bpl/parameterized/mutex-5/mutex-5.yml | 2 +- .../mutex-unbounded/mutex-unbounded.yml | 2 +- .../bpl/parameterized/ticket/ticket.yml | 2 +- .../plugins/icfgtochc/IcfgToChcObserver.java | 30 +++---- ...itionSynthesizingIndependenceRelation.java | 86 ------------------- .../ISymbolicIndependenceRelation.java | 53 ------------ .../partialorder/IndependenceChecker.java | 16 +++- ...eepSetThreadModularHornClauseProvider.java | 4 +- .../IcfgToChcPreferenceInitializer.java | 9 +- .../preferences/IcfgToChcPreferences.java | 6 +- .../ExplicitSymbolicIndependenceRelation.java | 45 +++++----- ...emanticIndependenceConditionGenerator.java | 36 +------- 27 files changed, 80 insertions(+), 239 deletions(-) delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java delete mode 100644 trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java rename trunk/source/{IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder => Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/partialorder/independence}/ExplicitSymbolicIndependenceRelation.java (51%) diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf index d06257bb32e..3ec289208c6 100644 --- a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf @@ -6,7 +6,7 @@ /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC # Settings for sleep sets /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=SUFFICIENT /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true # Other settings diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf index 204060959c6..5ac3b628870 100644 --- a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf @@ -6,7 +6,7 @@ /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC # Settings for sleep sets /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=SUFFICIENT /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true # Other settings diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf index dca3cb84999..8add18286c0 100644 --- a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf +++ b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf @@ -6,7 +6,7 @@ /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC # Settings for sleep sets /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=PRECOMPUTED_CONDITIONS +/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=SUFFICIENT /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true /instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true # Other settings diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml index ec88e261555..4887dfc3794 100644 --- a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml index c069c28c28a..b865ebe20d7 100644 --- a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml index a8ac04404ca..21b9bc00dac 100644 --- a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml @@ -19,5 +19,5 @@ options: # Settings for reduction Preference order used for reduction: LOCKSTEP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml index 93d3235a312..a8f3e843f1a 100644 --- a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: LOCKSTEP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml index 9c8a7388451..26b26f60faa 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml index e79199cc0af..b84c76129d0 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml index 161f8bd6eee..6e22e6ca7ad 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml index d9481da80d6..2919c493383 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml index d59dfddef4a..1b790d0a686 100644 --- a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml @@ -19,6 +19,5 @@ options: # Settings for reduction Preference order used for reduction: LOCKSTEP - Conditional Independence: "PRECOMPUTED_CONDITIONS" Use semi-commutativity: true diff --git a/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml b/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml index 409db7ff3c9..6dc9c1d51f7 100644 --- a/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml +++ b/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml @@ -18,5 +18,4 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "PRECOMPUTED_CONDITIONS" diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml index df8ab0a0bcd..8f14987930e 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml index 89ee3beea97..0636913a356 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml index 5f057126526..14b9c973106 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml index 3efe21a5986..82f651214ac 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml index 0e645c5de74..459eb305ecb 100644 --- a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml @@ -18,5 +18,5 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP - Conditional Independence: "OFF" + Conditional Independence: "NONE" diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index b3c7a3fe855..58e7eea8720 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -30,6 +30,8 @@ import java.util.Arrays; import java.util.Collection; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ExplicitSymbolicIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.lib.observers.BaseObserver; import de.uni_freiburg.informatik.ultimate.core.model.models.IElement; import de.uni_freiburg.informatik.ultimate.core.model.models.ModelUtils; @@ -47,17 +49,16 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation.IndependenceConditions; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadModularHornClauseProvider; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ApproximateLockstepPreferenceOrder; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ConditionSynthesizingIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ExplicitSymbolicIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.IThreadModularPreferenceOrder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SequentialCompositionPreferenceOrder; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder.SleepSetThreadModularHornClauseProvider; @@ -161,21 +162,18 @@ private Collection getHornClauses(IIcfg icfg, final Ma return new ChcProviderForCalls(mgdScript, hcSymbolTable).getHornClauses(icfg); } - private ISymbolicIndependenceRelation getIndependence(final IIcfg icfg, final ManagedScript mgdScript) { + private ISymbolicIndependenceRelation getIndependence(final IIcfg icfg, + final ManagedScript mgdScript) { final boolean symmetric = !mPrefs.useSemicommutativity(); - final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, symmetric); - - switch (mPrefs.conditionalIndependence()) { - case OFF: - return new ExplicitSymbolicIndependenceRelation<>(independence, mgdScript.getScript()); - case PRECOMPUTED_CONDITIONS: - final var factory = - new BasicPredicateFactory(mServices, mgdScript, icfg.getCfgSmtToolkit().getSymbolTable()); - final var generator = new SemanticIndependenceConditionGenerator(mServices, mgdScript, factory, symmetric); - return new ConditionSynthesizingIndependenceRelation<>(independence, generator, mgdScript.getScript()); - } + final var factory = new BasicPredicateFactory(mServices, mgdScript, icfg.getCfgSmtToolkit().getSymbolTable()); + final var generator = new SemanticIndependenceConditionGenerator(mServices, mgdScript, factory, symmetric); + final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, symmetric, + mPrefs.conditionalIndependence(), factory, generator); - throw new AssertionError("Unknown conditional independence setting: " + mPrefs.conditionalIndependence()); + if (mPrefs.conditionalIndependence() == IndependenceConditions.NONE) { + return new ExplicitSymbolicIndependenceRelation<>(independence, factory.and(), factory.or()); + } + return independence.getSymbolicRelation(); } private IThreadModularPreferenceOrder getPreferenceOrder(final Script script, final IIcfg icfg) { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java deleted file mode 100644 index 4b83b376685..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ConditionSynthesizingIndependenceRelation.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE IcfgToChc plug-in. - * - * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE IcfgToChc plug-in. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; - -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Term; - -/** - * An {@link ISymbolicIndependenceRelation} that uses a {@link SemanticIndependenceConditionGenerator} to find a - * sufficient condition for commutativity. - * - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * - * @param - */ -public class ConditionSynthesizingIndependenceRelation implements ISymbolicIndependenceRelation { - - private final SemanticIndependenceRelation mExplicitIndependence; - private final SemanticIndependenceConditionGenerator mGenerator; - private final Script mScript; - - public ConditionSynthesizingIndependenceRelation(final SemanticIndependenceRelation explicitIndependence, - final SemanticIndependenceConditionGenerator generator, final Script script) { - mExplicitIndependence = explicitIndependence; - mGenerator = generator; - mScript = script; - - assert mExplicitIndependence.isSymmetric() == mGenerator - .isSymmetric() : "Independence relation and condition generator should both be symmetric, or neither."; - } - - @Override - public Term getIndependenceCondition(final L a, final L b) { - final var dependence = mExplicitIndependence.isIndependent(null, a, b); - switch (dependence) { - case INDEPENDENT: - // Statements always commute, no condition is needed. - return mScript.term(SMTLIBConstants.TRUE); - case UNKNOWN: - // Commutativity condition synthesis probably won't succeed. - return mScript.term(SMTLIBConstants.FALSE); - case DEPENDENT: - final var condition = mGenerator.generateConditionTerm(a.getTransformula(), b.getTransformula()); - if (condition == null) { - // No commutativity condition could be synthesized. - return mScript.term(SMTLIBConstants.FALSE); - } - return condition; - default: - throw new AssertionError("Unknown dependency value: " + dependence); - } - } - - @Override - public boolean isSymmetric() { - return mExplicitIndependence.isSymmetric(); - } -} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java deleted file mode 100644 index a9c1ece0144..00000000000 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ISymbolicIndependenceRelation.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE IcfgToChc plug-in. - * - * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE IcfgToChc plug-in. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; - -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.logic.Term; - -/** - * Represents an independence (or "commutativity" relation). In spirit, this interface is similar to - * {@link IIndependenceRelation}, but instead of explicitly checking independence, it returns a symbolic condition (a - * boolean {@link Term}) such that, if the term evaluates to {@code true}, then the given letters are independent. - * - * Symbolic independence relations are inherently conditional: The returned {@link Term} is a formula over program - * variables that implies commutativity. However, symbolic independence relations currently do not support passing in a - * known context. - * - * Similar to {@link IIndependenceRelation}s, symbolic independence relations can be symmetric (i.e., describe a - * commutativity relation) or not (i.e., describe a semi-commutativity relation). - * - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * - * @param - * The type of actions checked for independence - */ -public interface ISymbolicIndependenceRelation { - Term getIndependenceCondition(L a, L b); - - boolean isSymmetric(); -} \ No newline at end of file diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index 503b55e0b9e..e9f33cb0d59 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -32,6 +32,7 @@ import java.util.Set; import java.util.stream.Collectors; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; @@ -41,9 +42,11 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaBuilder; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ProgramVarUtils; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcGlobalVar; @@ -63,7 +66,7 @@ class IndependenceChecker { private final ILogger mLogger; private final ManagedScript mMgdScript; private final IIcfgSymbolTable mSymbolTable; - private final ISymbolicIndependenceRelation mIndependence; + private final ISymbolicIndependenceRelation mIndependence; private final IcfgEdgeFactory mEdgeFactory; private final Map, Term> mCache = new HashMap<>(); @@ -72,7 +75,7 @@ class IndependenceChecker { private final Map mRightSubstitution; public IndependenceChecker(final IUltimateServiceProvider services, final CfgSmtToolkit csToolkit, - final ISymbolicIndependenceRelation independence) { + final ISymbolicIndependenceRelation independence) { mLogger = services.getLoggingService().getLogger(getClass()); mMgdScript = csToolkit.getManagedScript(); mSymbolTable = csToolkit.getSymbolTable(); @@ -176,7 +179,14 @@ private Term getInstantiatedIndependenceCondition(final IcfgEdge action1, final // compute the independence condition final var inst1 = instantiate(action1, mLeftSubstitution); final var inst2 = instantiate(action2, mRightSubstitution); - final var condition = mIndependence.getIndependenceCondition(inst1, inst2); + final var rawCondition = mIndependence.getCommutativityCondition(null, inst1, inst2); + final Term condition; + if (rawCondition == null) { + condition = mMgdScript.getScript().term(SMTLIBConstants.FALSE); + } else { + condition = rawCondition.getFormula(); + } + mLogger.info( "instantiated independence condition for '" + action1 + "' and '" + action2 + "' is: " + condition); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 065bd322007..00d8f9f3185 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -35,12 +35,14 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; @@ -63,7 +65,7 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, final IIcfg icfg, final HcSymbolTable symbolTable, - final ISymbolicIndependenceRelation> independence, + final ISymbolicIndependenceRelation, IPredicate> independence, final IThreadModularPreferenceOrder preferenceOrder, final IcfgToChcPreferences prefs) { super(services, mgdScript, icfg, symbolTable, prefs); mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), independence); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 95ab8097031..17e7289f147 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -34,6 +34,7 @@ import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItem; import de.uni_freiburg.informatik.ultimate.core.model.preferences.UltimatePreferenceItemContainer; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation.IndependenceConditions; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.Activator; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferences.SpecMode; @@ -127,7 +128,7 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize private static final PreferenceOrder DEF_PREFERENCE_ORDER = PreferenceOrder.SEQ_COMP; public static final String LABEL_CONDITIONAL_INDEPENDENCE = "Conditional Independence"; - private static final ConditionalIndependence DEF_CONDITIONAL_INDEPENDENCE = ConditionalIndependence.OFF; + private static final IndependenceConditions DEF_CONDITIONAL_INDEPENDENCE = IndependenceConditions.NONE; public static final String LABEL_SEMICOMMUTATIVITY = "Use semi-commutativity"; private static final boolean DEF_SEMICOMMUTATIVITY = true; @@ -136,10 +137,6 @@ public enum PreferenceOrder { SEQ_COMP, LOCKSTEP } - public enum ConditionalIndependence { - OFF, PRECOMPUTED_CONDITIONS - } - /** * Default constructor. */ @@ -185,7 +182,7 @@ private static UltimatePreferenceItemContainer getSleepSetSettings() { container.addItem(new UltimatePreferenceItem<>(LABEL_PREFERENCE_ORDER, DEF_PREFERENCE_ORDER, PreferenceType.Combo, PreferenceOrder.values())); container.addItem(new UltimatePreferenceItem<>(LABEL_CONDITIONAL_INDEPENDENCE, DEF_CONDITIONAL_INDEPENDENCE, - PreferenceType.Combo, ConditionalIndependence.values())); + PreferenceType.Combo, IndependenceConditions.values())); container.addItem( new UltimatePreferenceItem<>(LABEL_SEMICOMMUTATIVITY, DEF_SEMICOMMUTATIVITY, PreferenceType.Boolean)); return container; diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index dd5c7319a70..ff16c2b876d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -31,8 +31,8 @@ import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.core.model.preferences.IPreferenceProvider; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation.IndependenceConditions; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.ConditionalIndependence; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.preferences.IcfgToChcPreferenceInitializer.PreferenceOrder; public class IcfgToChcPreferences { @@ -96,9 +96,9 @@ public PreferenceOrder preferenceOrder() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_PREFERENCE_ORDER, PreferenceOrder.class); } - public ConditionalIndependence conditionalIndependence() { + public IndependenceConditions conditionalIndependence() { return mPrefs.getEnum(IcfgToChcPreferenceInitializer.LABEL_CONDITIONAL_INDEPENDENCE, - ConditionalIndependence.class); + IndependenceConditions.class); } public boolean useSemicommutativity() { diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java b/trunk/source/Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/partialorder/independence/ExplicitSymbolicIndependenceRelation.java similarity index 51% rename from trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java rename to trunk/source/Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/partialorder/independence/ExplicitSymbolicIndependenceRelation.java index 3d83a463194..c371f78bce9 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/ExplicitSymbolicIndependenceRelation.java +++ b/trunk/source/Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/partialorder/independence/ExplicitSymbolicIndependenceRelation.java @@ -2,36 +2,31 @@ * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) * Copyright (C) 2023 University of Freiburg * - * This file is part of the ULTIMATE IcfgToChc plug-in. + * This file is part of the ULTIMATE Automata Library. * - * The ULTIMATE IcfgToChc plug-in is free software: you can redistribute it and/or modify + * The ULTIMATE Automata Library is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * The ULTIMATE IcfgToChc plug-in is distributed in the hope that it will be useful, + * The ULTIMATE Automata Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE IcfgToChc plug-in. If not, see . + * along with the ULTIMATE Automata Library. If not, see . * * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE IcfgToChc plug-in, or any covered work, by linking + * If you modify the ULTIMATE Automata Library, or any covered work, by linking * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE IcfgToChc plug-in grant you additional permission + * licensors of the ULTIMATE Automata Library grant you additional permission * to convey the resulting work. */ -package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; +package de.uni_freiburg.informatik.ultimate.automata.partialorder.independence; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.IIndependenceRelation.Dependence; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; -import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Term; /** * Implements {@link ISymbolicIndependenceRelation} by explicitly checking independence and returning either the term @@ -42,26 +37,34 @@ * @param * The type of letters checked for independence */ -public class ExplicitSymbolicIndependenceRelation implements ISymbolicIndependenceRelation { - private final IIndependenceRelation mUnderlying; - private final Script mScript; +public class ExplicitSymbolicIndependenceRelation implements ISymbolicIndependenceRelation { + private final IIndependenceRelation mUnderlying; + private final S mTrueCondition; + private final S mFalseCondition; - public ExplicitSymbolicIndependenceRelation(final IIndependenceRelation underlying, final Script script) { + public ExplicitSymbolicIndependenceRelation(final IIndependenceRelation underlying, final S trueCondition, + final S falseCondition) { mUnderlying = underlying; - mScript = script; + mTrueCondition = trueCondition; + mFalseCondition = falseCondition; } @Override - public Term getIndependenceCondition(final L a, final L b) { - final var dependence = mUnderlying.isIndependent(null, a, b); + public S getCommutativityCondition(final S condition, final L a, final L b) { + final var dependence = mUnderlying.isIndependent(condition, a, b); if (dependence == Dependence.INDEPENDENT) { - return mScript.term(SMTLIBConstants.TRUE); + return mTrueCondition; } - return mScript.term(SMTLIBConstants.FALSE); + return mFalseCondition; } @Override public boolean isSymmetric() { return mUnderlying.isSymmetric(); } + + @Override + public boolean isConditional() { + return mUnderlying.isConditional(); + } } diff --git a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java index 0cf6545c205..1ad9ae70430 100644 --- a/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java +++ b/trunk/source/Library-TraceCheckerUtils/src/de/uni_freiburg/informatik/ultimate/lib/tracecheckerutils/partialorder/independence/SemanticIndependenceConditionGenerator.java @@ -127,20 +127,6 @@ public IPredicate generateCondition(final UnmodifiableTransFormula a, final Unmo return generateCondition(null, a, b); } - /** - * Generate a condition under which the given transitions are independent. - * - * @param a - * The first transition - * @param b - * The second transition - * - * @return a sufficient condition for independence - */ - public Term generateConditionTerm(final UnmodifiableTransFormula a, final UnmodifiableTransFormula b) { - return generateConditionTerm(null, a, b); - } - /** * Generate a condition under which the given transitions are independent. * @@ -155,23 +141,6 @@ public Term generateConditionTerm(final UnmodifiableTransFormula a, final Unmodi */ public IPredicate generateCondition(final IPredicate context, final UnmodifiableTransFormula a, final UnmodifiableTransFormula b) { - return mFactory.newPredicate(generateConditionTerm(context, a, b)); - } - - /** - * Generate a condition term under which the given transitions are independent. - * - * @param context - * A context that is already known, but not sufficient for commutativity - * @param a - * The first transition - * @param b - * The second transition - * - * @return a sufficient condition for independence - */ - public Term generateConditionTerm(final IPredicate context, final UnmodifiableTransFormula a, - final UnmodifiableTransFormula b) { // Generate both compositions, possibly adding a guard where applicable final UnmodifiableTransFormula ab = withGuard(context, compose(a, b)); final UnmodifiableTransFormula ba = withGuard(mSymmetric ? context : null, compose(b, a)); @@ -202,7 +171,10 @@ public Term generateConditionTerm(final IPredicate context, final UnmodifiableTr assert !substitution.containsKey(entry.getValue()); substitution.put(entry.getValue(), entry.getKey().getTermVariable()); } - return Substitution.apply(mMgdScript, substitution, condition); + final Term restoredCondition = Substitution.apply(mMgdScript, substitution, condition); + + // Create a predicate + return mFactory.newPredicate(restoredCondition); } private final UnmodifiableTransFormula compose(final UnmodifiableTransFormula first, From a0c725d78f0e63b8ad3a7fb525c0b845421e325e Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 14:45:23 +0100 Subject: [PATCH 101/124] IndependenceChecker: decouple from HornClauseBuilder --- .../partialorder/IndependenceChecker.java | 30 +++++++++---------- ...eepSetThreadModularHornClauseProvider.java | 4 +-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index e9f33cb0d59..a0749a6b1fa 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -30,6 +30,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.Function; import java.util.stream.Collectors; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; @@ -51,7 +52,7 @@ import de.uni_freiburg.informatik.ultimate.logic.TermVariable; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcGlobalVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HcLocalVar; -import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.HornClauseBuilder; +import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcReplacementVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; import de.uni_freiburg.informatik.ultimate.util.datastructures.SerialProvider; import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.Pair; @@ -87,8 +88,9 @@ public IndependenceChecker(final IUltimateServiceProvider services, final CfgSmt mRightSubstitution = createVariableMapping("~~right~~", localVars); } - public Term getIndependenceCondition(final HornClauseBuilder clause, final ThreadInstance thread1, - final IcfgEdge action1, final ThreadInstance thread2, final IcfgEdge action2) { + public Term getIndependenceCondition(final Function getTermVariable, + final ThreadInstance thread1, final IcfgEdge action1, final ThreadInstance thread2, + final IcfgEdge action2) { // Hardcoded conditions for line-queue example // TODO remove after evaluation Term hardcoded = null; @@ -153,13 +155,13 @@ public Term getIndependenceCondition(final HornClauseBuilder clause, final Threa if (hardcoded != null) { mLogger.warn( "Hardcoded independence condition for '" + action1 + "' and '" + action2 + "' is: " + hardcoded); - return deinstantiate(clause, thread1, thread2, hardcoded); + return deinstantiate(getTermVariable, thread1, thread2, hardcoded); } // first check the cache final var cached = mCache.get(new Pair<>(action1, action2)); if (cached != null) { - return deinstantiate(clause, thread1, thread2, cached); + return deinstantiate(getTermVariable, thread1, thread2, cached); } // for symmetric relations, check the cache for the symmetric case as well @@ -167,12 +169,12 @@ public Term getIndependenceCondition(final HornClauseBuilder clause, final Threa final var symCached = mCache.get(new Pair<>(action2, action1)); if (symCached != null) { // This needs a different deinstantiation than the cases above and below. - return deinstantiate(clause, thread2, thread1, symCached); + return deinstantiate(getTermVariable, thread2, thread1, symCached); } } final var instantiated = getInstantiatedIndependenceCondition(action1, action2); - return deinstantiate(clause, thread1, thread2, instantiated); + return deinstantiate(getTermVariable, thread1, thread2, instantiated); } private Term getInstantiatedIndependenceCondition(final IcfgEdge action1, final IcfgEdge action2) { @@ -202,29 +204,27 @@ private IcfgEdge instantiate(final IcfgEdge edge, final Map getTermVariable, final ThreadInstance thread1, final ThreadInstance thread2, final Term term) { final var backSubstitution = new HashMap(); - addBackSubstitutionMappings(clause, mLeftSubstitution, backSubstitution, thread1); - addBackSubstitutionMappings(clause, mRightSubstitution, backSubstitution, thread2); + addBackSubstitutionMappings(getTermVariable, mLeftSubstitution, backSubstitution, thread1); + addBackSubstitutionMappings(getTermVariable, mRightSubstitution, backSubstitution, thread2); for (final var global : mSymbolTable.getGlobals()) { final var hcVar = new HcGlobalVar(global); - final var bodyVar = clause.getBodyVar(hcVar); - backSubstitution.put(global.getTermVariable(), bodyVar.getTermVariable()); + backSubstitution.put(global.getTermVariable(), getTermVariable.apply(hcVar)); } return Substitution.apply(mMgdScript, backSubstitution, term); } - private void addBackSubstitutionMappings(final HornClauseBuilder clause, + private void addBackSubstitutionMappings(final Function getTermVariable, final Map substitution, final Map backSubstitution, final ThreadInstance thread) { for (final var local : mSymbolTable.getLocals(thread.getTemplateName())) { final var hcVar = new HcLocalVar(local, thread); - final var bodyVar = clause.getBodyVar(hcVar); final var instVar = substitution.get(local); - backSubstitution.put(instVar.getTermVariable(), bodyVar.getTermVariable()); + backSubstitution.put(instVar.getTermVariable(), getTermVariable.apply(hcVar)); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 00d8f9f3185..f48b24afb55 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -329,8 +329,8 @@ protected Term getCommutativityConstraint(final HornClauseBuilder clause, final continue; } - final var conjunct = - mIndependenceChecker.getIndependenceCondition(clause, activeThread, activeEdge, otherThread, edge); + final var conjunct = mIndependenceChecker.getIndependenceCondition( + v -> clause.getBodyVar(v).getTermVariable(), activeThread, activeEdge, otherThread, edge); if (SmtUtils.isFalseLiteral(conjunct)) { // escape early if one outgoing edge does not commute under any circumstances return mScript.term(SMTLIBConstants.FALSE); From a1d30175662d647495a31d9368efe56f4083dbae Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 14:51:08 +0100 Subject: [PATCH 102/124] fix assert failure for clauses without head (safety clauses) --- .../concurrent/ThreadModularHornClauseProvider.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index d9ae6fdd513..a523d606605 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -811,21 +811,25 @@ private static void prepareSubstitution(final HornClauseBuilder clause, final Un substitution.put(inVar, clause.getBodyVar(rv).getTerm()); } + // We rely on the internal normal form, namely that all assigned variables have outvars and are handled below. + assert TransFormulaUtils.hasInternalNormalForm(tf) : "Transition formula is not in internal normal form"; + final TermVariable outVar = tf.getOutVars().get(pv); final var dummyOutVars = new HashMap(); if (outVar != null && !Objects.equals(inVar, outVar)) { final var headPred = clause.getHeadPredicate(); if (headPred != null && headPred.hasParameter(rv)) { substitution.put(outVar, clause.getHeadVar(rv).getTerm()); + + // If we get here, pv must be an assigned variable of the transition formula. + // Hence the variable used to represent rv in the clause body and head must differ. + assert tf.getAssignedVars().contains(pv) : "invars / outvars / assigned vars inconsistent"; + clause.differentBodyHeadVar(rv); } else { final var bodyVar = dummyOutVars.computeIfAbsent(rv, x -> clause.getFreshBodyVar(x, x.getSort())); substitution.put(outVar, bodyVar.getTerm()); } } - - if (tf.getAssignedVars().contains(pv)) { - clause.differentBodyHeadVar(rv); - } } protected ThreadInstance getInterferingThread(final IIcfgTransition transition) { From e5f34f831bb61e5407d824b32a1b675cd4f22070 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 15:24:44 +0100 Subject: [PATCH 103/124] fix bug with unknown variables in predicate factory Move the creation of the symbolic independence relations to IndependenceChecker, and create a suitable symbol table for the relations as they work on instantiated conditions. --- .../plugins/icfgtochc/IcfgToChcObserver.java | 31 ++----------- .../partialorder/IndependenceChecker.java | 46 +++++++++++++++++-- ...eepSetThreadModularHornClauseProvider.java | 8 ++-- 3 files changed, 49 insertions(+), 36 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java index 58e7eea8720..5034c85432a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/IcfgToChcObserver.java @@ -30,8 +30,6 @@ import java.util.Arrays; import java.util.Collection; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ExplicitSymbolicIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.lib.observers.BaseObserver; import de.uni_freiburg.informatik.ultimate.core.model.models.IElement; import de.uni_freiburg.informatik.ultimate.core.model.models.ModelUtils; @@ -43,17 +41,11 @@ import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; import de.uni_freiburg.informatik.ultimate.lib.chc.HornClauseAST; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IcfgUtils; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgSummaryTransition; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeIterator; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; -import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation.IndependenceConditions; import de.uni_freiburg.informatik.ultimate.logic.Script; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ConcurrencyMode; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IcfgLiptonReducer; @@ -105,8 +97,8 @@ private void processIcfg(final IIcfg icfg) { final var chcCategoryInfo = ChcCategorizer.categorize(resultChcs, mgdScript); assert !chcCategoryInfo.containsNonLinearHornClauses() || isReturnReachable(icfg) - || !IcfgUtils.getForksInLoop(icfg).isEmpty() - || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC : "Unexpected non-linear clauses"; + || !IcfgUtils.getForksInLoop(icfg).isEmpty() || mPrefs.concurrencyMode() == ConcurrencyMode.PARAMETRIC + : "Unexpected non-linear clauses"; assert checkFreeVariables(resultChcs, mgdScript) : "Some clauses have free variables"; @@ -152,30 +144,15 @@ private Collection getHornClauses(IIcfg icfg, final Ma } if (mPrefs.useSleepSets()) { - final var independence = getIndependence(icfg, mgdScript); final var preforder = getPreferenceOrder(mgdScript.getScript(), icfg); - return new SleepSetThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, - independence, preforder, mPrefs).getClauses(); + return new SleepSetThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, preforder, + mPrefs).getClauses(); } return new ThreadModularHornClauseProvider(mServices, mgdScript, icfg, hcSymbolTable, mPrefs).getClauses(); } return new ChcProviderForCalls(mgdScript, hcSymbolTable).getHornClauses(icfg); } - private ISymbolicIndependenceRelation getIndependence(final IIcfg icfg, - final ManagedScript mgdScript) { - final boolean symmetric = !mPrefs.useSemicommutativity(); - final var factory = new BasicPredicateFactory(mServices, mgdScript, icfg.getCfgSmtToolkit().getSymbolTable()); - final var generator = new SemanticIndependenceConditionGenerator(mServices, mgdScript, factory, symmetric); - final var independence = new SemanticIndependenceRelation<>(mServices, mgdScript, false, symmetric, - mPrefs.conditionalIndependence(), factory, generator); - - if (mPrefs.conditionalIndependence() == IndependenceConditions.NONE) { - return new ExplicitSymbolicIndependenceRelation<>(independence, factory.and(), factory.or()); - } - return independence.getSymbolicRelation(); - } - private IThreadModularPreferenceOrder getPreferenceOrder(final Script script, final IIcfg icfg) { switch (mPrefs.preferenceOrder()) { case SEQ_COMP: diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index a0749a6b1fa..ea7421a79d7 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -33,20 +33,27 @@ import java.util.function.Function; import java.util.stream.Collectors; +import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ExplicitSymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.CfgSmtToolkit; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.DefaultIcfgSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.IIcfgSymbolTable; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IAction; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdgeFactory; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaBuilder; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ProgramVarUtils; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; +import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation.IndependenceConditions; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; import de.uni_freiburg.informatik.ultimate.logic.Term; import de.uni_freiburg.informatik.ultimate.logic.TermVariable; @@ -76,16 +83,47 @@ class IndependenceChecker { private final Map mRightSubstitution; public IndependenceChecker(final IUltimateServiceProvider services, final CfgSmtToolkit csToolkit, - final ISymbolicIndependenceRelation independence) { + final boolean useSemicommutativity, final IndependenceConditions independenceConditions) { mLogger = services.getLoggingService().getLogger(getClass()); mMgdScript = csToolkit.getManagedScript(); mSymbolTable = csToolkit.getSymbolTable(); - mIndependence = independence; mEdgeFactory = new IcfgEdgeFactory(new SerialProvider()); final var localVars = collectLocalVariables(csToolkit); mLeftSubstitution = createVariableMapping("~~left~~", localVars); mRightSubstitution = createVariableMapping("~~right~~", localVars); + + mIndependence = createIndependence(services, useSemicommutativity, independenceConditions); + } + + private ISymbolicIndependenceRelation createIndependence( + final IUltimateServiceProvider services, final boolean useSemicommutativity, + final IndependenceConditions independenceConditions) { + // Create a symbol table with the instantiated local variables and the original global variables. + final var instantiatedSymbolTable = new DefaultIcfgSymbolTable(); + for (final var global : mSymbolTable.getGlobals()) { + instantiatedSymbolTable.add(global); + } + for (final var leftLocal : mLeftSubstitution.values()) { + instantiatedSymbolTable.add(leftLocal); + } + for (final var rightLocal : mRightSubstitution.values()) { + instantiatedSymbolTable.add(rightLocal); + } + + // Create a predicate factory for the instantiated conditions, using the new symbol table. + final var factory = new BasicPredicateFactory(services, mMgdScript, instantiatedSymbolTable); + + final var generator = independenceConditions.requiresConditionGenerator() + ? new SemanticIndependenceConditionGenerator(services, mMgdScript, factory, !useSemicommutativity) + : null; + final var independence = new SemanticIndependenceRelation<>(services, mMgdScript, false, !useSemicommutativity, + independenceConditions, factory, generator); + + if (independenceConditions == IndependenceConditions.NONE) { + return new ExplicitSymbolicIndependenceRelation<>(independence, factory.and(), factory.or()); + } + return independence.getSymbolicRelation(); } public Term getIndependenceCondition(final Function getTermVariable, @@ -204,8 +242,8 @@ private IcfgEdge instantiate(final IcfgEdge edge, final Map getTermVariable, final ThreadInstance thread1, - final ThreadInstance thread2, final Term term) { + private Term deinstantiate(final Function getTermVariable, + final ThreadInstance thread1, final ThreadInstance thread2, final Term term) { final var backSubstitution = new HashMap(); addBackSubstitutionMappings(getTermVariable, mLeftSubstitution, backSubstitution, thread1); addBackSubstitutionMappings(getTermVariable, mRightSubstitution, backSubstitution, thread2); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index f48b24afb55..0bfe18d8d19 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -35,14 +35,11 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import de.uni_freiburg.informatik.ultimate.automata.partialorder.independence.ISymbolicIndependenceRelation; import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfg; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IIcfgTransition; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgEdge; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.structure.IcfgLocation; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; @@ -65,10 +62,11 @@ public class SleepSetThreadModularHornClauseProvider extends ThreadModularHornCl public SleepSetThreadModularHornClauseProvider(final IUltimateServiceProvider services, final ManagedScript mgdScript, final IIcfg icfg, final HcSymbolTable symbolTable, - final ISymbolicIndependenceRelation, IPredicate> independence, final IThreadModularPreferenceOrder preferenceOrder, final IcfgToChcPreferences prefs) { super(services, mgdScript, icfg, symbolTable, prefs); - mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), independence); + + mIndependenceChecker = new IndependenceChecker(services, icfg.getCfgSmtToolkit(), prefs.useSemicommutativity(), + prefs.conditionalIndependence()); mThreadLocations = icfg.getProgramPoints().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().values().stream().filter(this::isRelevantLocation).collect(Collectors.toList()))); From 921d0ad24111ab1d3912db80ca2ab6c8fd40a343 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 15:46:21 +0100 Subject: [PATCH 104/124] remove hardcoded commutativity conditions (reverts 5ab1b01) --- .../partialorder/IndependenceChecker.java | 69 ------------------- 1 file changed, 69 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java index ea7421a79d7..5f14740d56d 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IndependenceChecker.java @@ -26,7 +26,6 @@ */ package de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.partialorder; -import java.math.BigInteger; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -49,7 +48,6 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.BasicPredicateFactory; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.IPredicate; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.Substitution; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceConditionGenerator; import de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.SemanticIndependenceRelation; @@ -129,73 +127,6 @@ private ISymbolicIndependenceRelation createIndependence( public Term getIndependenceCondition(final Function getTermVariable, final ThreadInstance thread1, final IcfgEdge action1, final ThreadInstance thread2, final IcfgEdge action2) { - // Hardcoded conditions for line-queue example - // TODO remove after evaluation - Term hardcoded = null; - if ("value := queue[id - 1][read_ptr];".equals(action1.toString()) - && "queue := queue[0 := queue[0][write_ptr[0] := idx]];".equals(action2.toString())) { - final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - final var readPtrLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() - .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); - final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) - .findAny().get(); - hardcoded = SmtUtils.or(mMgdScript.getScript(), - SmtUtils.distinct(mMgdScript.getScript(), idLeft.getTerm(), - SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)), - SmtUtils.distinct(mMgdScript.getScript(), readPtrLeft.getTerm(), - SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), - SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ZERO)))); - } else if ("value := queue[id - 1][read_ptr];".equals(action1.toString()) - && "queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action2.toString())) { - final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - final var readPtrLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() - .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); - final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) - .findAny().get(); - hardcoded = SmtUtils.distinct(mMgdScript.getScript(), readPtrLeft.getTerm(), - SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), SmtUtils.minus(mMgdScript.getScript(), - idLeft.getTerm(), SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)))); - } else if ("queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action1.toString()) - && "queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action2.toString())) { - final var idLeft = mLeftSubstitution.get(mSymbolTable.getLocals(thread1.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - hardcoded = SmtUtils.distinct(mMgdScript.getScript(), idLeft.getTerm(), idRight.getTerm()); - } else if ("queue := queue[id := queue[id][write_ptr[id] := value]];".equals(action1.toString()) - && "value := queue[id - 1][read_ptr];".equals(action2.toString())) { - final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - final var readPtrRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() - .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); - final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) - .findAny().get(); - hardcoded = SmtUtils.distinct(mMgdScript.getScript(), readPtrRight.getTerm(), - SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), SmtUtils.minus(mMgdScript.getScript(), - idRight.getTerm(), SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)))); - } else if ("queue := queue[0 := queue[0][write_ptr[0] := idx]];".equals(action1.toString()) - && "value := queue[id - 1][read_ptr];".equals(action2.toString())) { - final var idRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() - .filter(v -> "id".equals(v.getIdentifier())).findAny().get()); - final var readPtrRight = mRightSubstitution.get(mSymbolTable.getLocals(thread2.getTemplateName()).stream() - .filter(v -> "read_ptr".equals(v.getIdentifier())).findAny().get()); - final var writePtr = mSymbolTable.getGlobals().stream().filter(v -> "write_ptr".equals(v.getIdentifier())) - .findAny().get(); - hardcoded = SmtUtils.or(mMgdScript.getScript(), - SmtUtils.distinct(mMgdScript.getScript(), idRight.getTerm(), - SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ONE)), - SmtUtils.distinct(mMgdScript.getScript(), readPtrRight.getTerm(), - SmtUtils.select(mMgdScript.getScript(), writePtr.getTerm(), - SmtUtils.constructIntValue(mMgdScript.getScript(), BigInteger.ZERO)))); - } - if (hardcoded != null) { - mLogger.warn( - "Hardcoded independence condition for '" + action1 + "' and '" + action2 + "' is: " + hardcoded); - return deinstantiate(getTermVariable, thread1, thread2, hardcoded); - } - // first check the cache final var cached = mCache.get(new Pair<>(action1, action2)); if (cached != null) { From 21e81a6ad898278afb774f0d8e228e79b2ccc5dc Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 12 Dec 2024 17:59:03 +0100 Subject: [PATCH 105/124] SleepThreadModularChcTestSuite: specify solver in task definition --- .../parameterized/SleepExplicit-Eldarica.epf | 41 ------------------- .../bpl/parameterized/SleepExplicit-Golem.epf | 41 ------------------- ...SleepExplicit-Z3.epf => SleepExplicit.epf} | 0 .../{add-sub-k.yml => add-sub-k.GOLEM.yml} | 5 +++ .../add-sub-positive-k.ELDARICA.yml | 26 ++++++++++++ .../add-sub-positive-k.GOLEM.yml | 26 ++++++++++++ ...sitive-k.yml => add-sub-positive-k.Z3.yml} | 4 ++ .../bluetooth-better.ELDARICA.yml | 25 +++++++++++ .../bluetooth-better.GOLEM.yml | 25 +++++++++++ ...oth-better.yml => bluetooth-better.Z3.yml} | 3 ++ .../equalsum-ghost.ELDARICA.yml} | 9 ++-- ...ualsum-ghost.yml => equalsum-ghost.Z3.yml} | 4 ++ .../inc-bdec/inc-bdec.ELDARICA.yml | 25 +++++++++++ .../parameterized/inc-bdec/inc-bdec.GOLEM.yml | 25 +++++++++++ .../{inc-bdec.yml => inc-bdec.Z3.yml} | 4 ++ .../inc-dec-eq0-locked-assert.ELDARICA.yml} | 6 ++- .../inc-dec-eq0-locked-assert.GOLEM.yml} | 5 ++- ...t.yml => inc-dec-eq0-locked-assert.Z3.yml} | 3 ++ ...ed.yml => inc-dec-eq0-locked.ELDARICA.yml} | 4 ++ .../inc-dec-eq0-locked.GOLEM.yml | 26 ++++++++++++ .../inc-dec-eq0-locked.Z3.yml | 26 ++++++++++++ ...{inc-dec-eq0.yml => inc-dec-eq0.GOLEM.yml} | 5 +++ .../inc-dec-geq0/inc-dec-geq0.GOLEM.yml | 26 ++++++++++++ .../line-queue/line-queue.ELDARICA.yml | 27 ++++++++++++ .../line-queue/line-queue.GOLEM.yml | 27 ++++++++++++ .../{line-queue.yml => line-queue.Z3.yml} | 4 ++ .../lock/{lock.yml => lock.Z3.yml} | 5 +++ .../{mutex-3.yml => mutex-3.GOLEM.yml} | 5 +++ .../parameterized/mutex-4/mutex-4.GOLEM.yml | 27 ++++++++++++ .../{mutex-5.yml => mutex-5.GOLEM.yml} | 5 +++ ...nbounded.yml => mutex-unbounded.GOLEM.yml} | 5 +++ .../notify-listeners.ELDARICA.yml | 27 ++++++++++++ .../notify-listeners.GOLEM.yml | 27 ++++++++++++ ...-listeners.yml => notify-listeners.Z3.yml} | 4 ++ ...mbered-array.yml => numbered-array.Z3.yml} | 5 +++ .../thread-pooling.ELDARICA.yml | 25 +++++++++++ ...read-pooling.yml => thread-pooling.Z3.yml} | 4 ++ .../parameterized/ticket/ticket.ELDARICA.yml | 26 ++++++++++++ .../bpl/parameterized/ticket/ticket.GOLEM.yml | 26 ++++++++++++ .../ticket/{ticket.yml => ticket.Z3.yml} | 4 ++ .../SleepThreadModularChcTestSuite.java | 21 +++------- 41 files changed, 536 insertions(+), 102 deletions(-) delete mode 100644 trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf delete mode 100644 trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf rename trunk/examples/concurrent/bpl/parameterized/{SleepExplicit-Z3.epf => SleepExplicit.epf} (100%) rename trunk/examples/concurrent/bpl/parameterized/add-sub-k/{add-sub-k.yml => add-sub-k.GOLEM.yml} (77%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/{add-sub-positive-k.yml => add-sub-positive-k.Z3.yml} (81%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/bluetooth-better/{bluetooth-better.yml => bluetooth-better.Z3.yml} (86%) rename trunk/examples/concurrent/bpl/parameterized/{equalsum-fork/equalsum-fork.yml => equalsum-ghost/equalsum-ghost.ELDARICA.yml} (68%) rename trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/{equalsum-ghost.yml => equalsum-ghost.Z3.yml} (81%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/inc-bdec/{inc-bdec.yml => inc-bdec.Z3.yml} (79%) rename trunk/examples/concurrent/bpl/parameterized/{inc-dec-geq0/inc-dec-geq0.yml => inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.ELDARICA.yml} (78%) rename trunk/examples/concurrent/bpl/parameterized/{mutex-4/mutex-4.yml => inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.GOLEM.yml} (79%) rename trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/{inc-dec-eq0-locked-assert.yml => inc-dec-eq0-locked-assert.Z3.yml} (86%) rename trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/{inc-dec-eq0-locked.yml => inc-dec-eq0-locked.ELDARICA.yml} (80%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.GOLEM.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.Z3.yml rename trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/{inc-dec-eq0.yml => inc-dec-eq0.GOLEM.yml} (77%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.GOLEM.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/line-queue/{line-queue.yml => line-queue.Z3.yml} (81%) rename trunk/examples/concurrent/bpl/parameterized/lock/{lock.yml => lock.Z3.yml} (76%) rename trunk/examples/concurrent/bpl/parameterized/mutex-3/{mutex-3.yml => mutex-3.GOLEM.yml} (77%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/mutex-5/{mutex-5.yml => mutex-5.GOLEM.yml} (77%) rename trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/{mutex-unbounded.yml => mutex-unbounded.GOLEM.yml} (78%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/notify-listeners/{notify-listeners.yml => notify-listeners.Z3.yml} (81%) rename trunk/examples/concurrent/bpl/parameterized/numbered-array/{numbered-array.yml => numbered-array.Z3.yml} (77%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.ELDARICA.yml rename trunk/examples/concurrent/bpl/parameterized/thread-pooling/{thread-pooling.yml => thread-pooling.Z3.yml} (79%) create mode 100644 trunk/examples/concurrent/bpl/parameterized/ticket/ticket.ELDARICA.yml create mode 100644 trunk/examples/concurrent/bpl/parameterized/ticket/ticket.GOLEM.yml rename trunk/examples/concurrent/bpl/parameterized/ticket/{ticket.yml => ticket.Z3.yml} (80%) diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf deleted file mode 100644 index 3ec289208c6..00000000000 --- a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf +++ /dev/null @@ -1,41 +0,0 @@ -#Thu May 25 14:24:13 CEST 2023 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc= -# Settings for the program -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC -# Settings for sleep sets -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=SUFFICIENT -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true -# Other settings -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Apply\ Lipton\ reduction=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ control\ locations\ explicitly=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ sleep\ sets\ explicitly=false -@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver= -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/CHC\ solver\ backend=ELDARICA -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=true -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=true -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=true -@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter= -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true -@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder= -/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement -@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3 -file_export_version=3.0 diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf deleted file mode 100644 index 5ac3b628870..00000000000 --- a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf +++ /dev/null @@ -1,41 +0,0 @@ -#Thu May 25 14:24:13 CEST 2023 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc= -# Settings for the program -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC -# Settings for sleep sets -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=SUFFICIENT -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Break\ symmetry\ of\ preference\ order=true -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Enable\ sleep\ set\ reduction=true -# Other settings -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Apply\ Lipton\ reduction=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ control\ locations\ explicitly=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Encode\ sleep\ sets\ explicitly=false -@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver= -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/CHC\ solver\ backend=GOLEM -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=true -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=false -@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter= -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true -/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true -@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3 -file_export_version=3.0 - - -\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder= -/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false -/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement -@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3 -file_export_version=3.0 diff --git a/trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf b/trunk/examples/concurrent/bpl/parameterized/SleepExplicit.epf similarity index 100% rename from trunk/examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf rename to trunk/examples/concurrent/bpl/parameterized/SleepExplicit.epf diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.GOLEM.yml similarity index 77% rename from trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml rename to trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.GOLEM.yml index 4887dfc3794..d64defa17db 100644 --- a/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.yml +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-k/add-sub-k.GOLEM.yml @@ -20,3 +20,8 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 250000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.ELDARICA.yml new file mode 100644 index 00000000000..09f570f8f05 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.ELDARICA.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'add-sub-positive-k.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.GOLEM.yml new file mode 100644 index 00000000000..cded7bed46c --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.GOLEM.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'add-sub-positive-k.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.Z3.yml similarity index 81% rename from trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml rename to trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.Z3.yml index b865ebe20d7..ded9a4adfa3 100644 --- a/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.yml +++ b/trunk/examples/concurrent/bpl/parameterized/add-sub-positive-k/add-sub-positive-k.Z3.yml @@ -20,3 +20,7 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.ELDARICA.yml new file mode 100644 index 00000000000..0f9e14635db --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.ELDARICA.yml @@ -0,0 +1,25 @@ +format_version: '2.0' + +input_files: 'bluetooth-better.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: server + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.GOLEM.yml new file mode 100644 index 00000000000..a5738594830 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.GOLEM.yml @@ -0,0 +1,25 @@ +format_version: '2.0' + +input_files: 'bluetooth-better.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: server + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.Z3.yml similarity index 86% rename from trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml rename to trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.Z3.yml index b0e8fba9413..5d3c97abff3 100644 --- a/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.yml +++ b/trunk/examples/concurrent/bpl/parameterized/bluetooth-better/bluetooth-better.Z3.yml @@ -20,3 +20,6 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.ELDARICA.yml similarity index 68% rename from trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml rename to trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.ELDARICA.yml index 21b9bc00dac..42f8cd21f34 100644 --- a/trunk/examples/concurrent/bpl/parameterized/equalsum-fork/equalsum-fork.yml +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.ELDARICA.yml @@ -1,6 +1,6 @@ format_version: '2.0' -input_files: 'equalsum-fork.bpl' +input_files: 'equalsum-ghost.bpl' properties: - property_file: ../../../svcomp/properties/unreach-call.prp @@ -10,9 +10,8 @@ options: language: Boogie de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: # Settings for the program - Assume program has a precondition: false + Assume program has a precondition: true Specification mode: ASSERT_VIOLATIONS - Concurrency mode: SINGLE_MAIN_THREAD # Thread modularity level Thread-Modular Proof Level: 2 @@ -21,3 +20,7 @@ options: Preference order used for reduction: LOCKSTEP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.Z3.yml similarity index 81% rename from trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml rename to trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.Z3.yml index a8f3e843f1a..b4db0e3215e 100644 --- a/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.yml +++ b/trunk/examples/concurrent/bpl/parameterized/equalsum-ghost/equalsum-ghost.Z3.yml @@ -20,3 +20,7 @@ options: Preference order used for reduction: LOCKSTEP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml new file mode 100644 index 00000000000..cbb1d465d82 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml @@ -0,0 +1,25 @@ +format_version: '2.0' + +input_files: 'inc-bdec.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml new file mode 100644 index 00000000000..5723fb6fed2 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml @@ -0,0 +1,25 @@ +format_version: '2.0' + +input_files: 'inc-bdec.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml similarity index 79% rename from trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml index 3df1a227646..4e075f9880a 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml @@ -19,3 +19,7 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.ELDARICA.yml similarity index 78% rename from trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.ELDARICA.yml index 2919c493383..c0efb6d4df4 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.ELDARICA.yml @@ -1,6 +1,6 @@ format_version: '2.0' -input_files: 'inc-dec-geq0.bpl' +input_files: 'inc-dec-eq0-locked-assert.bpl' properties: - property_file: ../../../svcomp/properties/unreach-call.prp @@ -20,3 +20,7 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.GOLEM.yml similarity index 79% rename from trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.GOLEM.yml index 0636913a356..4b1b6c885f8 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.GOLEM.yml @@ -1,6 +1,6 @@ format_version: '2.0' -input_files: 'mutex-4.bpl' +input_files: 'inc-dec-eq0-locked-assert.bpl' properties: - property_file: ../../../svcomp/properties/unreach-call.prp @@ -20,3 +20,6 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.Z3.yml similarity index 86% rename from trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.Z3.yml index 26b26f60faa..d2c2e3e802b 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked-assert/inc-dec-eq0-locked-assert.Z3.yml @@ -20,3 +20,6 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.ELDARICA.yml similarity index 80% rename from trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.ELDARICA.yml index b84c76129d0..ffc6c5c12ad 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.ELDARICA.yml @@ -20,3 +20,7 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.GOLEM.yml new file mode 100644 index 00000000000..ffc6c5c12ad --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.GOLEM.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'inc-dec-eq0-locked.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.Z3.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.Z3.yml new file mode 100644 index 00000000000..ffc6c5c12ad --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0-locked/inc-dec-eq0-locked.Z3.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'inc-dec-eq0-locked.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: POSTCONDITION + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.GOLEM.yml similarity index 77% rename from trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml rename to trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.GOLEM.yml index 6e22e6ca7ad..1f3f2f2dfe8 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-eq0/inc-dec-eq0.GOLEM.yml @@ -20,3 +20,8 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 60000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.GOLEM.yml new file mode 100644 index 00000000000..437a26e9191 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/inc-dec-geq0/inc-dec-geq0.GOLEM.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'inc-dec-geq0.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 5000 #ms diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.ELDARICA.yml new file mode 100644 index 00000000000..928d39ad8a9 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.ELDARICA.yml @@ -0,0 +1,27 @@ +format_version: '2.0' + +input_files: 'line-queue.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: source + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Use semi-commutativity: true + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.GOLEM.yml new file mode 100644 index 00000000000..a41e124cf67 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.GOLEM.yml @@ -0,0 +1,27 @@ +format_version: '2.0' + +input_files: 'line-queue.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: source + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Use semi-commutativity: true + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.Z3.yml similarity index 81% rename from trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml rename to trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.Z3.yml index 1b790d0a686..fd669ebe1ec 100644 --- a/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.yml +++ b/trunk/examples/concurrent/bpl/parameterized/line-queue/line-queue.Z3.yml @@ -21,3 +21,7 @@ options: Preference order used for reduction: LOCKSTEP Use semi-commutativity: true + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml b/trunk/examples/concurrent/bpl/parameterized/lock/lock.Z3.yml similarity index 76% rename from trunk/examples/concurrent/bpl/parameterized/lock/lock.yml rename to trunk/examples/concurrent/bpl/parameterized/lock/lock.Z3.yml index 6dc9c1d51f7..e38ac493f7d 100644 --- a/trunk/examples/concurrent/bpl/parameterized/lock/lock.yml +++ b/trunk/examples/concurrent/bpl/parameterized/lock/lock.Z3.yml @@ -19,3 +19,8 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + Timeout: 5000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.GOLEM.yml similarity index 77% rename from trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml rename to trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.GOLEM.yml index 8f14987930e..6ab3e07936f 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-3/mutex-3.GOLEM.yml @@ -20,3 +20,8 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 5000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.GOLEM.yml new file mode 100644 index 00000000000..477215f908d --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-4/mutex-4.GOLEM.yml @@ -0,0 +1,27 @@ +format_version: '2.0' + +input_files: 'mutex-4.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 5000 # ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.GOLEM.yml similarity index 77% rename from trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml rename to trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.GOLEM.yml index 14b9c973106..9a095d50b81 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-5/mutex-5.GOLEM.yml @@ -20,3 +20,8 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 5000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.GOLEM.yml similarity index 78% rename from trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml rename to trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.GOLEM.yml index 82f651214ac..552cac4b883 100644 --- a/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.yml +++ b/trunk/examples/concurrent/bpl/parameterized/mutex-unbounded/mutex-unbounded.GOLEM.yml @@ -20,3 +20,8 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + Timeout: 5000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.ELDARICA.yml new file mode 100644 index 00000000000..a2c2442cec8 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.ELDARICA.yml @@ -0,0 +1,27 @@ +format_version: '2.0' + +input_files: 'notify-listeners.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: notifier + + # Thread modularity level + Thread-Modular Proof Level: 1 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Use semi-commutativity: true + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.GOLEM.yml new file mode 100644 index 00000000000..608a615ca68 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.GOLEM.yml @@ -0,0 +1,27 @@ +format_version: '2.0' + +input_files: 'notify-listeners.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + Single-instance threads: notifier + + # Thread modularity level + Thread-Modular Proof Level: 1 + + # Settings for reduction + Preference order used for reduction: LOCKSTEP + Use semi-commutativity: true + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.Z3.yml similarity index 81% rename from trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml rename to trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.Z3.yml index 655c86c9658..adc2b5cad93 100644 --- a/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.yml +++ b/trunk/examples/concurrent/bpl/parameterized/notify-listeners/notify-listeners.Z3.yml @@ -21,3 +21,7 @@ options: Preference order used for reduction: LOCKSTEP Use semi-commutativity: true + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.Z3.yml similarity index 77% rename from trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml rename to trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.Z3.yml index 3b5745d7b28..669a4fcbcce 100644 --- a/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.yml +++ b/trunk/examples/concurrent/bpl/parameterized/numbered-array/numbered-array.Z3.yml @@ -19,3 +19,8 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + Timeout: 5000 #ms + diff --git a/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.ELDARICA.yml new file mode 100644 index 00000000000..05371a21403 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.ELDARICA.yml @@ -0,0 +1,25 @@ +format_version: '2.0' + +input_files: 'thread-pooling.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: false + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.Z3.yml similarity index 79% rename from trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml rename to trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.Z3.yml index f09530c7a4f..0a2084dc8d3 100644 --- a/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.yml +++ b/trunk/examples/concurrent/bpl/parameterized/thread-pooling/thread-pooling.Z3.yml @@ -19,3 +19,7 @@ options: # Settings for reduction Preference order used for reduction: SEQ_COMP + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.ELDARICA.yml new file mode 100644 index 00000000000..7778216d5a6 --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.ELDARICA.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'ticket.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: ELDARICA + diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.GOLEM.yml new file mode 100644 index 00000000000..ea3f0d5a92c --- /dev/null +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.GOLEM.yml @@ -0,0 +1,26 @@ +format_version: '2.0' + +input_files: 'ticket.bpl' + +properties: + - property_file: ../../../svcomp/properties/unreach-call.prp + expected_verdict: true + +options: + language: Boogie + de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: + # Settings for the program + Assume program has a precondition: true + Specification mode: ASSERT_VIOLATIONS + + # Thread modularity level + Thread-Modular Proof Level: 2 + + # Settings for reduction + Preference order used for reduction: SEQ_COMP + Conditional Independence: "NONE" + + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: GOLEM + diff --git a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.Z3.yml similarity index 80% rename from trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml rename to trunk/examples/concurrent/bpl/parameterized/ticket/ticket.Z3.yml index 459eb305ecb..0b6f4826bd5 100644 --- a/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.yml +++ b/trunk/examples/concurrent/bpl/parameterized/ticket/ticket.Z3.yml @@ -20,3 +20,7 @@ options: Preference order used for reduction: SEQ_COMP Conditional Independence: "NONE" + # Fix the best solver for this benchmark + de.uni_freiburg.informatik.ultimate.plugins.chcsolver: + CHC solver backend: Z3 + diff --git a/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java b/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java index eb67a2121af..5d734c4a05d 100644 --- a/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java +++ b/trunk/source/UltimateRegressionTest/src/de/uni_freiburg/informatik/ultimate/regressiontest/generic/SleepThreadModularChcTestSuite.java @@ -51,17 +51,11 @@ import de.uni_freiburg.informatik.ultimate.test.util.UltimateRunDefinitionGenerator; public class SleepThreadModularChcTestSuite extends UltimateTestSuite { - // @formatter:off - private static final String[] SETTINGS = { - "examples/concurrent/bpl/parameterized/SleepExplicit-Z3.epf", - "examples/concurrent/bpl/parameterized/SleepExplicit-Golem.epf", - "examples/concurrent/bpl/parameterized/SleepExplicit-Eldarica.epf", - }; - // @formatter:on + private static final String SETTINGS = "examples/concurrent/bpl/parameterized/SleepExplicit.epf"; private static final String TOOLCHAIN = "examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml"; private static final String DIRECTORY = "examples/concurrent/bpl/parameterized/"; private static final String TASKDEF_REGEX = ".*\\.yml"; - private static final int DEFAULT_TIMEOUT = 60; + private static final int DEFAULT_TIMEOUT = 600; @Override protected Collection createTestCases() { @@ -71,16 +65,13 @@ protected Collection createTestCases() { final List result = new ArrayList<>(); for (final var taskDefFile : selectedYamlFiles) { + final File settingsFile = UltimateRunDefinitionGenerator.getFileFromTrunkDir(SETTINGS); final var taskDefinition = parseTaskDefinition(taskDefFile); final String bplFilename = (String) taskDefinition.get("input_files"); final Path bplPath = taskDefFile.toPath().getParent().resolve(bplFilename); - - for (final String settingsPath : SETTINGS) { - final File settingsFile = UltimateRunDefinitionGenerator.getFileFromTrunkDir(settingsPath); - final var urd = new UltimateRunDefinition(bplPath.toFile(), settingsFile, toolchainFile, - getTimeout(taskDefinition), applySettings(taskDefFile, taskDefinition)); - result.add(new UltimateTestCase(constructITestResultDecider(urd, taskDefinition), urd, List.of())); - } + final var urd = new UltimateRunDefinition(bplPath.toFile(), settingsFile, toolchainFile, + getTimeout(taskDefinition), applySettings(taskDefFile, taskDefinition)); + result.add(new UltimateTestCase(constructITestResultDecider(urd, taskDefinition), urd, List.of())); } return result; From 4aa7bf474e82a9115802ba251f732d736b489f32 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 13 Dec 2024 20:56:05 +0100 Subject: [PATCH 106/124] remove some redundant tests, fix expected timeout --- .../inc-bdec/inc-bdec.ELDARICA.yml | 25 ------------------- .../parameterized/inc-bdec/inc-bdec.GOLEM.yml | 1 + .../parameterized/inc-bdec/inc-bdec.Z3.yml | 25 ------------------- 3 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml delete mode 100644 trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml deleted file mode 100644 index cbb1d465d82..00000000000 --- a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.ELDARICA.yml +++ /dev/null @@ -1,25 +0,0 @@ -format_version: '2.0' - -input_files: 'inc-bdec.bpl' - -properties: - - property_file: ../../../svcomp/properties/unreach-call.prp - expected_verdict: true - -options: - language: Boogie - de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: - # Settings for the program - Assume program has a precondition: true - Specification mode: POSTCONDITION - - # Thread modularity level - Thread-Modular Proof Level: 2 - - # Settings for reduction - Preference order used for reduction: SEQ_COMP - - # Fix the best solver for this benchmark - de.uni_freiburg.informatik.ultimate.plugins.chcsolver: - CHC solver backend: ELDARICA - diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml index 5723fb6fed2..eec190e7640 100644 --- a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml +++ b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.GOLEM.yml @@ -22,4 +22,5 @@ options: # Fix the best solver for this benchmark de.uni_freiburg.informatik.ultimate.plugins.chcsolver: CHC solver backend: GOLEM + Timeout: 90000 #ms diff --git a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml b/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml deleted file mode 100644 index 4e075f9880a..00000000000 --- a/trunk/examples/concurrent/bpl/parameterized/inc-bdec/inc-bdec.Z3.yml +++ /dev/null @@ -1,25 +0,0 @@ -format_version: '2.0' - -input_files: 'inc-bdec.bpl' - -properties: - - property_file: ../../../svcomp/properties/unreach-call.prp - expected_verdict: true - -options: - language: Boogie - de.uni_freiburg.informatik.ultimate.plugins.icfgtochc: - # Settings for the program - Assume program has a precondition: true - Specification mode: POSTCONDITION - - # Thread modularity level - Thread-Modular Proof Level: 2 - - # Settings for reduction - Preference order used for reduction: SEQ_COMP - - # Fix the best solver for this benchmark - de.uni_freiburg.informatik.ultimate.plugins.chcsolver: - CHC solver backend: Z3 - From 019bfb41adff312c5120a80a5104b8d0bc84cada Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 19 Dec 2024 15:46:49 +0100 Subject: [PATCH 107/124] add setting for nondeterministic sleep updates --- ...eepSetThreadModularHornClauseProvider.java | 23 ++++++++++++++++--- .../IcfgToChcPreferenceInitializer.java | 10 ++++++++ .../preferences/IcfgToChcPreferences.java | 4 ++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java index 0bfe18d8d19..38e244b87fc 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SleepSetThreadModularHornClauseProvider.java @@ -282,10 +282,27 @@ private void updateSleep(final HornClauseBuilder clause, final ThreadInstance ac final Term commConstr = getCommutativityConstraint(clause, activeThread, activeEdge, updatedThread, currentLoc.getTerm()); + // Combine the conjuncts to determine whether the thread can be added to the sleep set. + // ((updatedThread < activeThread) \/ sleep) /\ commConstr + final Term sleepConstr = SmtUtils.and(mScript, canBePutToSleep, commConstr); + // Update the sleep variable of updatedThread, according to the sleep set rule. - // sleep' = ((updatedThread < activeThread) \/ sleep) /\ commConstr - clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), - SmtUtils.and(mScript, canBePutToSleep, commConstr))); + if (mPrefs.useNondetSleepUpdates()) { + // This encoding allows to nondeterministically add the thread to the sleep set or not, if the required + // conditions are not satisfied. As we always prove the program correct for all resolutions of such + // nondeterminism, we also cover the case that the thread is not added. Hence, this mode is still sound. + // Overall, the satisfiability of the CHC system should not be affected. + // + // However, we generate a slightly simpler constraint which might be easier to solve. In particular, if the + // commutativity constraint contains universally quantified variables, this form allows to lift these + // quantified variables to the clause level. + // + // ((updatedThread < activeThread) \/ sleep) /\ commConstr -> sleep' + clause.addConstraint(SmtUtils.implies(mScript, sleepConstr, newSleep.getTerm())); + } else { + // sleep' = ((updatedThread < activeThread) \/ sleep) /\ commConstr + clause.addConstraint(SmtUtils.binaryBooleanEquality(mScript, newSleep.getTerm(), sleepConstr)); + } } protected Term getCommutativityConstraint(final HornClauseBuilder clause, final ThreadInstance activeThread, diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java index 17e7289f147..39356b9662a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferenceInitializer.java @@ -118,6 +118,14 @@ public class IcfgToChcPreferenceInitializer extends UltimatePreferenceInitialize + "all symmetric preference orders. If we break symmetry, more proofs are accepted."; private static final boolean DEF_BREAK_PREFORDER_SYMMETRY = true; + public static final String LABEL_NONDET_SLEEP_UPDATES = "Use nondeterministic sleep update encoding"; + private static final String DESC_NONDET_SLEEP_UPDATES = """ + If enabled, sleep set updates are encoded such that non-deterministically, \ + non-commuting edges may or may not be added to the sleep set. \ + This does not affect CHC satisfiability but may sometimes be simpler for the CHC solver. \ + It is particularly recommended in connection with necessary-and-complete conditional independence."""; + private static final boolean DEF_NONDET_SLEEP_UPDATES = false; + // TODO Currently unused public static final String LABEL_EXPLICIT_SLEEP = "Encode sleep sets explicitly"; private static final String DESC_EXPLICIT_SLEEP = "Sleep sets can be encoded symbolically (as CHC variables), " @@ -177,6 +185,8 @@ private static UltimatePreferenceItemContainer getSleepSetSettings() { DESC_SLEEP_SET_REDUCTION, PreferenceType.Boolean)); container.addItem(new UltimatePreferenceItem<>(LABEL_BREAK_PREFORDER_SYMMETRY, DEF_BREAK_PREFORDER_SYMMETRY, DESC_BREAK_PREFORDER_SYMMETRY, PreferenceType.Boolean)); + container.addItem(new UltimatePreferenceItem<>(LABEL_NONDET_SLEEP_UPDATES, DEF_NONDET_SLEEP_UPDATES, + DESC_NONDET_SLEEP_UPDATES, PreferenceType.Boolean)); container.addItem(new UltimatePreferenceItem<>(LABEL_EXPLICIT_SLEEP, DEF_EXPLICIT_SLEEP, DESC_EXPLICIT_SLEEP, PreferenceType.Boolean)); container.addItem(new UltimatePreferenceItem<>(LABEL_PREFERENCE_ORDER, DEF_PREFERENCE_ORDER, diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java index ff16c2b876d..8f2619f28e5 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/preferences/IcfgToChcPreferences.java @@ -87,6 +87,10 @@ public boolean breakPreferenceOrderSymmetry() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_BREAK_PREFORDER_SYMMETRY); } + public boolean useNondetSleepUpdates() { + return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_NONDET_SLEEP_UPDATES); + } + // TODO Currently unused public boolean explicitSleep() { return mPrefs.getBoolean(IcfgToChcPreferenceInitializer.LABEL_EXPLICIT_SLEEP); From 07d314644a786a4adf2c21f873ca162a9379365c Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 19 Dec 2024 16:48:44 +0100 Subject: [PATCH 108/124] prepare evaluation --- .../default/benchexec/sleep-threadmodular.xml | 126 +++++++++++++----- ...epf => ThreadModularVerifier.Settings.epf} | 2 +- .../SleepThreadModularChcTestSuite.java | 2 +- 3 files changed, 97 insertions(+), 33 deletions(-) rename trunk/examples/concurrent/bpl/parameterized/{SleepExplicit.epf => ThreadModularVerifier.Settings.epf} (98%) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 9fbba9a5983..4cd8aca1a21 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -3,30 +3,94 @@ ${taskdef_path}/CHC_*.smt2 + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -90,9 +154,9 @@ - + @@ -100,9 +164,9 @@ - + - + - + @@ -168,9 +232,9 @@ - + @@ -178,9 +242,9 @@ - + - + - + @@ -150,7 +150,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -170,7 +170,7 @@ - + - + @@ -228,7 +228,7 @@ - + @@ -238,7 +238,7 @@ - + @@ -248,16 +248,16 @@ - ../../../trunk/examples/threadmodular/regression/*/*.yml + ../../../trunk/examples/concurrent/bpl/parameterized/*/*.yml ../../../trunk/examples/svcomp/properties/unreach-call.prp - ../../../trunk/examples/threadmodular/regression/unsolved.set + ../../../trunk/examples/concurrent/bpl/parameterized/unsolved.set ../../../trunk/examples/svcomp/properties/unreach-call.prp From 3f1e3e5f2c01fe8e0d99795e221f1d880efe1315 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Mon, 30 Dec 2024 12:18:30 +0100 Subject: [PATCH 110/124] fix benchmark file: command line parameters --- .../default/benchexec/sleep-threadmodular.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 48ef14d7598..738413dab4d 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -32,7 +32,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -59,8 +59,8 @@ - - + + @@ -69,7 +69,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -87,7 +87,7 @@ - + From 85b1de34df3bf5c1e2d3493c58790842c0380e02 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Fri, 3 Jan 2025 16:35:10 +0100 Subject: [PATCH 111/124] undo temporary debugging changes --- .../coreplugin/services/ModelTranslationContainer.java | 8 +++----- .../ultimate/smtsolver/external/FunctionDefinition.java | 3 +-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java index 980bad6f708..ff7051987c3 100644 --- a/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java +++ b/trunk/source/CoreRCP/src/de/uni_freiburg/informatik/ultimate/core/coreplugin/services/ModelTranslationContainer.java @@ -62,11 +62,9 @@ protected ModelTranslationContainer(final ModelTranslationContainer other) { if (mTranslationSequence.size() > 0) { final ITranslator last = mTranslationSequence.getLast(); if (!isAllowedNext(last, translator)) { - // TODO a temporary change to allow UniHorn to run on generated CHCs - // throw new IllegalArgumentException( - // "The supplied ITranslator is not compatible with the existing ones. It has to be compatible with " - // + last + ", but it is " + translator); - return; + throw new IllegalArgumentException( + "The supplied ITranslator is not compatible with the existing ones. It has to be compatible with " + + last + ", but it is " + translator); } } mTranslationSequence.addLast(translator); diff --git a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java index a5847c35135..7a1a880cb67 100644 --- a/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java +++ b/trunk/source/SMTSolverBridge/src/de/uni_freiburg/informatik/ultimate/smtsolver/external/FunctionDefinition.java @@ -80,8 +80,7 @@ public String toString() { builder.append(") "); builder.append(getReturnSort()); builder.append(" "); - // TODO temporary change, revert to toString in the future - builder.append(mBody.toStringDirect()); + builder.append(mBody); builder.append(")"); return builder.toString(); } From 52675bbfc71e78569f657f112f2cc5eedd72b4d6 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 7 Jan 2025 15:31:18 +0100 Subject: [PATCH 112/124] remove EldaricaChcScript and related classes (for now) Currently, the implementation does not work well: CHC systems that are easily solved by eldarica via the command line cannot be solved by this implementation. We are probably using the eldarica classes incorrectly. It's also not clear that eldarica provides a stable API, we are just accessing some implementation details here that might change at any time. --- trunk/source/Library-CHC/META-INF/MANIFEST.MF | 1 - .../lib/chc/eldarica/Backtranslator.java | 229 ----------- .../lib/chc/eldarica/EldaricaChcScript.java | 372 ------------------ .../ultimate/lib/chc/eldarica/Translator.java | 278 ------------- 4 files changed, 880 deletions(-) delete mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Backtranslator.java delete mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java delete mode 100644 trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java diff --git a/trunk/source/Library-CHC/META-INF/MANIFEST.MF b/trunk/source/Library-CHC/META-INF/MANIFEST.MF index 037693b9ef5..cd7a3c5de95 100644 --- a/trunk/source/Library-CHC/META-INF/MANIFEST.MF +++ b/trunk/source/Library-CHC/META-INF/MANIFEST.MF @@ -17,6 +17,5 @@ Require-Bundle: de.uni_freiburg.informatik.ultimate.lib.smtlibutils, wrapped.io.github.uuverifiers.princess_2.12, org.scala-lang.scala-library Export-Package: de.uni_freiburg.informatik.ultimate.lib.chc, - de.uni_freiburg.informatik.ultimate.lib.chc.eldarica, de.uni_freiburg.informatik.ultimate.lib.chc.results Automatic-Module-Name: de.uni.freiburg.informatik.ultimate.lib.chc diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Backtranslator.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Backtranslator.java deleted file mode 100644 index 39993d3debe..00000000000 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Backtranslator.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE CHC Library. - * - * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE CHC Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE CHC Library. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE CHC Library, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE CHC Library grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.lib.chc.eldarica; - -import java.math.BigInteger; - -import ap.parser.IBinFormula; -import ap.parser.IBinJunctor; -import ap.parser.IEquation; -import ap.parser.IFormula; -import ap.parser.IFunApp; -import ap.parser.IIntFormula; -import ap.parser.IIntLit; -import ap.parser.IIntRelation; -import ap.parser.IPlus; -import ap.parser.ISortedVariable; -import ap.parser.ITerm; -import ap.parser.ITimes; -import ap.terfor.preds.Predicate; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; -import de.uni_freiburg.informatik.ultimate.logic.Rational; -import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.logic.Term; -import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; - -/** - * Backtranslation from eldarica terms and formulas to Ultimate terms. - * - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * - */ -class Backtranslator { - private final Script mScript; - private final BidirectionalMap mPredicateMap; - - Backtranslator(final Script script, final BidirectionalMap predicateMap) { - mScript = script; - mPredicateMap = predicateMap; - } - - public HcPredicateSymbol translatePredicate(final Predicate predicate) { - return mPredicateMap.inverse().get(predicate); - } - - public Term translateFormula(final IFormula formula, final IBoundVariableContext ctx) { - if (formula instanceof IBinFormula) { - return translateBinFormula((IBinFormula) formula, ctx); - } - if (formula instanceof IIntFormula) { - return translateIntFormula((IIntFormula) formula, ctx); - } - if (formula instanceof IEquation) { - return translateEquation((IEquation) formula, ctx); - } - throw new UnsupportedOperationException(formula.toString()); - } - - private Term translateEquation(final IEquation equation, final IBoundVariableContext ctx) { - // We don't know the intended sort of the terms here. But it does not matter, equality works for all sorts. - final var left = translateTermInternal(equation.left(), ctx); - final var right = translateTermInternal(equation.right(), ctx); - return SmtUtils.binaryEquality(mScript, left, right); - } - - private Term translateIntFormula(final IIntFormula formula, final IBoundVariableContext ctx) { - final var operand = translateTerm(formula.t(), getIntSort(), ctx); - final var rel = formula.rel(); - if (IIntRelation.EqZero().equals(rel)) { - return SmtUtils.binaryEquality(mScript, operand, numeral(BigInteger.ZERO)); - } - if (IIntRelation.GeqZero().equals(rel)) { - return SmtUtils.geq(mScript, operand, numeral(BigInteger.ZERO)); - } - throw new UnsupportedOperationException("Unknown integer relation: " + rel); - } - - private Term translateBinFormula(final IBinFormula formula, final IBoundVariableContext ctx) { - final var left = translateFormula(formula.f1(), ctx); - final var right = translateFormula(formula.f2(), ctx); - - final var op = formula.j(); - if (IBinJunctor.Or().equals(op)) { - return SmtUtils.or(mScript, left, right); - } - if (IBinJunctor.And().equals(op)) { - return SmtUtils.and(mScript, left, right); - } - if (IBinJunctor.Eqv().equals(op)) { - return SmtUtils.binaryBooleanEquality(mScript, left, right); - } - throw new UnsupportedOperationException("Unknown binary operator: " + op); - } - - public Term translateTerm(final ITerm term, final Sort sort, final IBoundVariableContext ctx) { - // sort conversion for booleans: bool expected, but term given - if (SmtSortUtils.isBoolSort(sort)) { - final var formula = new ap.types.Sort.MultipleValueBool$().isTrue(term); - return translateFormula(formula, ctx); - } - - final var translated = translateTermInternal(term, ctx); - - // sort conversion for booleans: term expected, but translated sort is bool - if (SmtSortUtils.isBoolSort(translated.getSort())) { - // zero is true, non-zero is false - // http://www.philipp.ruemmer.org/princess/doc/#ap.types.Sort$$MultipleValueBool$ - final var trueTerm = numeral(BigInteger.ZERO); - final var falseTerm = numeral(BigInteger.ONE); - return SmtUtils.ite(mScript, translated, trueTerm, falseTerm); - } - - assert translated.getSort().equals(sort) : "Translated term has sort " + translated.getSort() + " instead of " - + sort; - return translated; - } - - private Term translateTermInternal(final ITerm term, final IBoundVariableContext ctx) { - if (term instanceof IPlus) { - final var plus = (IPlus) term; - final var left = translateTerm(plus.t1(), getIntSort(), ctx); - final var right = translateTerm(plus.t2(), getIntSort(), ctx); - return SmtUtils.sum(mScript, getIntSort(), left, right); - } - if (term instanceof ITimes) { - final var times = (ITimes) term; - final var left = Rational.valueOf(times.coeff().bigIntValue(), BigInteger.ONE); - final var right = translateTerm(times.subterm(), getIntSort(), ctx); - return SmtUtils.mul(mScript, left, right); - } - if (term instanceof ISortedVariable) { - final var variable = (ISortedVariable) term; - return ctx.getBoundVariable(variable.index()); - } - if (term instanceof IFunApp) { - final var app = (IFunApp) term; - final var storeTerm = translateStore(app, ctx); - if (storeTerm != null) { - return storeTerm; - } - final var constTerm = translateConstArray(app, ctx); - if (constTerm != null) { - return constTerm; - } - final var boolLit = translateBoolLit(app); - if (boolLit != null) { - return boolLit; - } - } - if (term instanceof IIntLit) { - final var value = ((IIntLit) term).value(); - return numeral(value.bigIntValue()); - } - throw new IllegalArgumentException("Unknown term: " + term.toString()); - } - - private Term translateStore(final IFunApp store, final IBoundVariableContext ctx) { - if (!SMTLIBConstants.STORE.equals(store.fun().name()) || store.fun().arity() != 3) { - return null; - } - - final var array = translateTermInternal(store.args().apply(0), ctx); - final var index = translateTermInternal(store.args().apply(1), ctx); - final var value = translateTermInternal(store.args().apply(2), ctx); - - return SmtUtils.store(mScript, array, index, value); - } - - private Term translateConstArray(final IFunApp constArray, final IBoundVariableContext ctx) { - if (!SMTLIBConstants.CONST.equals(constArray.fun().name()) || constArray.fun().arity() != 1) { - return null; - } - - final var value = translateTermInternal(constArray.args().apply(0), ctx); - return mScript.term(SMTLIBConstants.CONST, null, - SmtSortUtils.getArraySort(mScript, getIntSort(), value.getSort()), value); - } - - private Term translateBoolLit(final IFunApp boolLit) { - final var name = boolLit.fun().name(); - switch (name) { - case SMTLIBConstants.TRUE: - case SMTLIBConstants.FALSE: - assert boolLit.args().isEmpty() : "unexpected parameters for function " + name; - return mScript.term(name); - default: - return null; - } - } - - private Term numeral(final BigInteger value) { - return SmtUtils.constructIntegerValue(mScript, getIntSort(), value); - } - - private Sort getIntSort() { - return SmtSortUtils.getIntSort(mScript); - } - - public interface IBoundVariableContext { - Term getBoundVariable(int index); - } -} diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java deleted file mode 100644 index d4474c4396b..00000000000 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/EldaricaChcScript.java +++ /dev/null @@ -1,372 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE CHC Library. - * - * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE CHC Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE CHC Library. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE CHC Library, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE CHC Library grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.lib.chc.eldarica; - -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.IntStream; - -import ap.api.SimpleAPI; -import ap.basetypes.Tree; -import ap.parser.IAtom; -import ap.parser.IFormula; -import ap.terfor.preds.Predicate; -import de.uni_freiburg.informatik.ultimate.core.lib.exceptions.ToolchainCanceledException; -import de.uni_freiburg.informatik.ultimate.core.model.services.ILogger; -import de.uni_freiburg.informatik.ultimate.core.model.services.IUltimateServiceProvider; -import de.uni_freiburg.informatik.ultimate.lib.chc.Derivation; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcSymbolTable; -import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.chc.IChcScript; -import de.uni_freiburg.informatik.ultimate.lib.chc.eldarica.Backtranslator.IBoundVariableContext; -import de.uni_freiburg.informatik.ultimate.logic.Model; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Script.LBool; -import de.uni_freiburg.informatik.ultimate.logic.Term; -import de.uni_freiburg.informatik.ultimate.logic.TermVariable; -import de.uni_freiburg.informatik.ultimate.smtsolver.external.FunctionDefinition; -import de.uni_freiburg.informatik.ultimate.smtsolver.external.ModelDescription; -import de.uni_freiburg.informatik.ultimate.util.Lazy; -import lazabs.GlobalParameters; -import lazabs.horn.bottomup.HornClauses.Clause; -import lazabs.horn.bottomup.SimpleWrapper; -import scala.Option; -import scala.Tuple2; -import scala.collection.JavaConverters; -import scala.collection.Seq; -import scala.collection.immutable.List; - -/** - * Provides access to the eldarica constraint Horn solver. - * - * https://github.com/uuverifiers/eldarica/ - * - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - */ -public class EldaricaChcScript implements IChcScript, AutoCloseable { - private final IUltimateServiceProvider mServices; - private final ILogger mLogger; - private final Script mScript; - private final SimpleAPI mPrincess; - - private final long mDefaultQueryTimeout; - private boolean mProduceModels = false; - private boolean mProduceDerivations = false; - private boolean mProduceUnsatCores = false; - - private Translator mTranslator; - private Map mClauseMap; - - private LBool mLastResult = null; - private Lazy mLastModel; - private Lazy mLastDerivation; - private Lazy> mLastUnsatCore; - - public EldaricaChcScript(final IUltimateServiceProvider services, final Script script) { - this(services, script, -1L); - } - - public EldaricaChcScript(final IUltimateServiceProvider services, final Script script, - final long defaultQueryTimeout) { - mServices = services; - mLogger = services.getLoggingService().getLogger(getClass()); - mScript = script; - mPrincess = SimpleAPI.apply(SimpleAPI.apply$default$1(), SimpleAPI.apply$default$2(), - SimpleAPI.apply$default$3(), SimpleAPI.apply$default$4(), SimpleAPI.apply$default$5(), - SimpleAPI.apply$default$6(), SimpleAPI.apply$default$7(), SimpleAPI.apply$default$8(), - SimpleAPI.apply$default$9(), SimpleAPI.apply$default$10(), SimpleAPI.apply$default$11()); - mDefaultQueryTimeout = defaultQueryTimeout; - } - - @Override - public Script getScript() { - return mScript; - } - - @Override - public LBool solve(final HcSymbolTable symbolTable, final java.util.List system) { - return solve(symbolTable, system, -1L); - } - - @Override - public LBool solve(final HcSymbolTable symbolTable, final java.util.List system, final long timeout) { - reset(); - setupTimeout(timeout); - - final var translatedClauses = translateSystem(system); - try { - if (0 == 1) { - // Unreachable dummy code so Java doesn't think the catch block is unreachable. - // Necessary because the scala API does not declare checked exceptions. - throw lazabs.Main.TimeoutException$.MODULE$; - } - - mLogger.info("starting eldarica solver..."); - final var result = SimpleWrapper.solveLazily(translatedClauses, SimpleWrapper.solve$default$2(), - SimpleWrapper.solve$default$3(), SimpleWrapper.solve$default$4(), SimpleWrapper.solve$default$6()); - mLogger.info("eldarica has returned successfully."); - - final var backtranslator = mTranslator.createBacktranslator(mScript); - - if (result.isLeft()) { - mLastResult = LBool.SAT; - if (mProduceModels) { - final var modelBuilder = result.left().get(); - mLastModel = new Lazy<>(() -> translateModel(backtranslator, modelBuilder.apply())); - } - } else { - mLastResult = LBool.UNSAT; - if (mProduceDerivations || mProduceUnsatCores) { - final var derivationBuilder = result.right().get(); - final var clauseMap = mClauseMap; - if (mProduceDerivations) { - mLastDerivation = new Lazy<>(() -> translateDerivation(backtranslator, clauseMap, - derivationBuilder.apply().toTree())); - } - if (mProduceUnsatCores) { - mLastUnsatCore = - new Lazy<>(() -> extractUnsatCore(clauseMap, derivationBuilder.apply().toTree())); - } - } - } - } catch (final lazabs.Main.TimeoutException$ e) { - if (!mServices.getProgressMonitorService().continueProcessing()) { - throw new ToolchainCanceledException(getClass(), "solving CHC system"); - } - mLogger.warn("Eldarica timed out, returning UNKNOWN: %s", e); - mLastResult = LBool.UNKNOWN; - } - return mLastResult; - } - - private List translateSystem(final java.util.Collection system) { - final var translatedClauses = new ArrayList(system.size()); - for (final var clause : system) { - final var translated = mTranslator.translateClause(clause); - mClauseMap.put(translated, clause); - translatedClauses.add(translated); - } - return toList(translatedClauses); - } - - @Override - public boolean supportsModelProduction() { - return true; - } - - @Override - public void produceModels(final boolean enable) { - mProduceModels = enable; - } - - @Override - public Optional getModel() { - if (mLastResult != LBool.SAT) { - throw new UnsupportedOperationException("No model available: last query was " + mLastResult); - } - if (mLastModel == null) { - return Optional.empty(); - } - return Optional.of(mLastModel.get()); - } - - private ModelDescription translateModel(final Backtranslator backtranslator, - final scala.collection.Map model) { - final var translatedDefs = new HashSet(); - for (final var entry : ofMap(model).entrySet()) { - final var pred = backtranslator.translatePredicate(entry.getKey()); - final var ctx = new PredicateContext(mScript, pred); - final var body = backtranslator.translateFormula(entry.getValue(), ctx); - translatedDefs.add(new FunctionDefinition(pred.getFunctionSymbol(), ctx.getParameters(), body)); - } - return new ModelDescription(translatedDefs); - } - - @Override - public boolean supportsDerivationProduction() { - return true; - } - - @Override - public void produceDerivations(final boolean enable) { - mProduceDerivations = enable; - } - - @Override - public Optional getDerivation() { - if (mLastResult != LBool.UNSAT) { - throw new UnsupportedOperationException("No derivation available: last query was " + mLastResult); - } - if (mLastDerivation == null) { - return Optional.empty(); - } - return Optional.of(mLastDerivation.get()); - } - - private static Derivation translateDerivation(final Backtranslator backtranslator, - final Map clauseMap, final Tree> tree) { - final var atom = tree.d()._1(); - final var pred = backtranslator.translatePredicate(atom.pred()); - - final var args = new ArrayList(atom.args().length()); - int i = 0; - for (final var arg : ofList(atom.args())) { - final var sort = pred.getParameterSorts().get(i); - final var term = backtranslator.translateTerm(arg, sort, null); - args.add(term); - i++; - } - - final var children = ofList(tree.children()).stream() - .map(c -> translateDerivation(backtranslator, clauseMap, c)).collect(Collectors.toList()); - return new Derivation(pred, args, clauseMap.get(tree.d()._2()), children); - } - - @Override - public boolean supportsUnsatCores() { - return true; - } - - @Override - public void produceUnsatCores(final boolean enable) { - mProduceUnsatCores = enable; - } - - @Override - public Optional> getUnsatCore() { - if (mLastResult != LBool.UNSAT) { - throw new UnsupportedOperationException("No UNSAT core available: last query was " + mLastResult); - } - if (mLastUnsatCore == null) { - return Optional.empty(); - } - return Optional.of(mLastUnsatCore.get()); - } - - private static Set extractUnsatCore(final Map clauseMap, - final Tree> derivation) { - final var worklist = new ArrayDeque>>(); - worklist.add(derivation); - - final var result = new HashSet(); - while (!worklist.isEmpty()) { - final var tree = worklist.pop(); - final var clause = tree.d()._2(); - result.add(clauseMap.get(clause)); - worklist.addAll(ofList(tree.children())); - } - return result; - } - - private void reset() { - mClauseMap = new HashMap<>(); - mTranslator = new Translator(mPrincess); - - mLastModel = null; - mLastDerivation = null; - mLastUnsatCore = null; - } - - @Override - public void close() throws Exception { - mPrincess.shutDown(); - } - - private void setupTimeout(final long queryTimeout) { - // set the timeout parameter itself - final var actualTimeout = determineTimeout(queryTimeout); - mLogger.info("setting eldarica timeout (in ms) to %s", actualTimeout); - GlobalParameters.get().timeout_$eq((Option) actualTimeout); - - // we need to override the timeout checking logic, because eldarica only does this in its main() method - final var pms = mServices.getProgressMonitorService(); - final long startTime = System.currentTimeMillis(); - GlobalParameters.get().timeoutChecker_$eq(new scala.runtime.AbstractFunction0<>() { - @Override - public scala.runtime.BoxedUnit apply() { - if (!pms.continueProcessing() || (actualTimeout.isDefined() - && System.currentTimeMillis() - startTime > actualTimeout.get())) { - // Nasty hack to trick java into throwing TimeoutException, a checked exception. - // (This is necessary, because scala does not declare checked exceptions.) - throwUnchecked(lazabs.Main.TimeoutException$.MODULE$); - } - return scala.runtime.BoxedUnit.UNIT; - } - }); - } - - private Option determineTimeout(final long queryTimeout) { - final var globalTimeout = mServices.getProgressMonitorService().remainingTime(); - final var currentTimeout = queryTimeout <= 0 ? mDefaultQueryTimeout : queryTimeout; - final var actualTimeout = currentTimeout <= 0 ? globalTimeout : Long.min(currentTimeout, globalTimeout); - return actualTimeout < 0 ? Option.empty() : Option.apply((int) actualTimeout); - } - - private static void throwUnchecked(final Throwable e) throws T { - throw (T) e; - } - - private static List toList(final java.util.List list) { - return JavaConverters.asScalaIteratorConverter(list.iterator()).asScala().toList(); - } - - private static java.util.List ofList(final Seq list) { - return JavaConverters.seqAsJavaListConverter(list).asJava(); - } - - private static Map ofMap(final scala.collection.Map map) { - return JavaConverters.mapAsJavaMapConverter(map).asJava(); - } - - private static class PredicateContext implements IBoundVariableContext { - private final Script mScript; - private final HcPredicateSymbol mPredicate; - - public PredicateContext(final Script script, final HcPredicateSymbol predicate) { - mScript = script; - mPredicate = predicate; - } - - @Override - public TermVariable getBoundVariable(final int index) { - final var sort = mPredicate.getParameterSorts().get(index); - return mScript.variable("~~" + mPredicate.getFunctionSymbol() + "~" + index, sort); - } - - public TermVariable[] getParameters() { - return IntStream.range(0, mPredicate.getArity()).mapToObj(this::getBoundVariable) - .toArray(TermVariable[]::new); - } - } -} diff --git a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java b/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java deleted file mode 100644 index dd196a82a1c..00000000000 --- a/trunk/source/Library-CHC/src/de/uni_freiburg/informatik/ultimate/lib/chc/eldarica/Translator.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (C) 2023 Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * Copyright (C) 2023 University of Freiburg - * - * This file is part of the ULTIMATE CHC Library. - * - * The ULTIMATE CHC Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The ULTIMATE CHC Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the ULTIMATE CHC Library. If not, see . - * - * Additional permission under GNU GPL version 3 section 7: - * If you modify the ULTIMATE CHC Library, or any covered work, by linking - * or combining it with Eclipse RCP (or a modified version of Eclipse RCP), - * containing parts covered by the terms of the Eclipse Public License, the - * licensors of the ULTIMATE CHC Library grant you additional permission - * to convey the resulting work. - */ -package de.uni_freiburg.informatik.ultimate.lib.chc.eldarica; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Map; -import java.util.function.BiFunction; -import java.util.stream.Collectors; - -import ap.api.SimpleAPI; -import ap.basetypes.IdealInt; -import ap.parser.IAtom; -import ap.parser.IBoolLit; -import ap.parser.IExpression; -import ap.parser.IFormula; -import ap.parser.IFunApp; -import ap.parser.IIntLit; -import ap.parser.ITerm; -import ap.terfor.preds.Predicate; -import ap.theories.arrays.ExtArray; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcHeadVar; -import de.uni_freiburg.informatik.ultimate.lib.chc.HcPredicateSymbol; -import de.uni_freiburg.informatik.ultimate.lib.chc.HornClause; -import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtSortUtils; -import de.uni_freiburg.informatik.ultimate.logic.ApplicationTerm; -import de.uni_freiburg.informatik.ultimate.logic.ConstantTerm; -import de.uni_freiburg.informatik.ultimate.logic.Rational; -import de.uni_freiburg.informatik.ultimate.logic.SMTLIBConstants; -import de.uni_freiburg.informatik.ultimate.logic.Script; -import de.uni_freiburg.informatik.ultimate.logic.Sort; -import de.uni_freiburg.informatik.ultimate.logic.Term; -import de.uni_freiburg.informatik.ultimate.logic.TermVariable; -import de.uni_freiburg.informatik.ultimate.util.datastructures.BidirectionalMap; -import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.NestedMap2; -import lazabs.horn.bottomup.HornClauses; -import lazabs.horn.bottomup.HornClauses.Clause; -import scala.collection.JavaConverters; -import scala.collection.immutable.List; - -/** - * Translates {@link HornClause}s to eldarica's {@link Clause}s. - * - * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) - * - */ -class Translator { - private static final Map> BINARY_EXPRESSION_TRANSLATION = Map.of( - // equality - SMTLIBConstants.EQUALS, ITerm::$eq$eq$eq, - // disequality - SMTLIBConstants.DISTINCT, ITerm::$eq$div$eq, - // less-than - SMTLIBConstants.LT, ITerm::$less, - // less-or-equal - SMTLIBConstants.LEQ, ITerm::$less$eq, - // greater-than - SMTLIBConstants.GT, ITerm::$greater, - // greater-or-equal - SMTLIBConstants.GEQ, ITerm::$greater$eq, - // addition - SMTLIBConstants.PLUS, ITerm::$plus, - // subtraction - SMTLIBConstants.MINUS, ITerm::$minus); - - private final SimpleAPI mPrincess; - private final BidirectionalMap mPredicateMap = new BidirectionalMap<>(); - private final BidirectionalMap mVariableMap = new BidirectionalMap<>(); - private final NestedMap2, ap.types.Sort, ExtArray> mArrayTheories = new NestedMap2<>(); - - public Translator(final SimpleAPI princess) { - mPrincess = princess; - } - - public Backtranslator createBacktranslator(final Script script) { - return new Backtranslator(script, mPredicateMap); - } - - public Clause translateClause(final HornClause clause) { - final IAtom head; - if (clause.isHeadFalse()) { - head = new IAtom(HornClauses.FALSE(), toList(java.util.List.of())); - } else { - final var headPred = getPredicateSymbol(clause.getHeadPredicate()); - final var headArgs = clause.getTermVariablesForHeadPred().stream().map(HcHeadVar::getTermVariable) - .map(this::translateTerm).collect(Collectors.toList()); - head = new IAtom(headPred, toList(headArgs)); - } - - final ArrayList body = new ArrayList<>(clause.getRank()); - for (int i = 0; i < clause.getRank(); ++i) { - final var pred = getPredicateSymbol(clause.getBodyPredicates().get(i)); - final var args = - clause.getBodyPredToArgs().get(i).stream().map(this::translateTerm).collect(Collectors.toList()); - body.add(new IAtom(pred, toList(args))); - } - - final var constraint = translateFormula(clause.getConstraintFormula()); - return new Clause(head, toList(body), constraint); - } - - private static List toList(final java.util.List list) { - return JavaConverters.asScalaIteratorConverter(list.iterator()).asScala().toList(); - } - - private Predicate getPredicateSymbol(final HcPredicateSymbol pred) { - return mPredicateMap.computeIfAbsent(pred, this::createPredicate); - } - - private Predicate createPredicate(final HcPredicateSymbol pred) { - final var sorts = pred.getParameterSorts().stream().map(this::translateSort).collect(Collectors.toList()); - return mPrincess.createRelation(pred.getName(), toList(sorts)); - } - - private ap.types.Sort translateSort(final Sort sort) { - if (SmtSortUtils.isIntSort(sort)) { - return ap.types.Sort.Integer$.MODULE$; - } - if (SmtSortUtils.isBoolSort(sort)) { - return ap.types.Sort.MultipleValueBool$.MODULE$; - } - if (SmtSortUtils.isArraySort(sort)) { - return getArrayTheory(sort).sort(); - } - throw new IllegalArgumentException(sort.getName()); - } - - private ExtArray getArrayTheory(final Sort arraySort) { - final var params = arraySort.getArguments(); - assert params.length >= 2 : "arrays should have at least one index sort, and one domain sort"; - - final var indices = toList( - Arrays.stream(params).limit(params.length - 1).map(this::translateSort).collect(Collectors.toList())); - final var range = translateSort(params[params.length - 1]); - - var theory = mArrayTheories.get(indices, range); - if (theory == null) { - theory = new ExtArray(indices, range); - mArrayTheories.put(indices, range, theory); - } - return theory; - } - - public IFormula translateFormula(final Term term) { - final var expr = translateExpression(term); - if (expr instanceof ITerm) { - return ap.types.Sort.MultipleValueBool$.MODULE$.isTrue((ITerm) expr); - } - return (IFormula) translateExpression(term); - } - - public ITerm translateTerm(final Term term) { - final var expr = translateExpression(term); - if (expr instanceof IFormula) { - final var bool = ap.types.Sort.MultipleValueBool$.MODULE$; - return IExpression.ite((IFormula) expr, bool.True(), bool.False()); - } - return (ITerm) translateExpression(term); - } - - private IExpression translateExpression(final Term term) { - if (term instanceof TermVariable) { - return translateVariable((TermVariable) term); - } - if (term instanceof ApplicationTerm) { - return translateApplication((ApplicationTerm) term); - } - if (term instanceof ConstantTerm) { - return translateConstant((ConstantTerm) term); - } - throw new IllegalArgumentException(term.toString()); - } - - private IExpression translateVariable(final TermVariable variable) { - return mVariableMap.computeIfAbsent(variable, this::createVariable); - } - - private ITerm createVariable(final TermVariable variable) { - final var sort = variable.getSort(); - return mPrincess.createConstant(variable.getName(), translateSort(sort)); - } - - private IExpression translateApplication(final ApplicationTerm term) { - final var function = term.getFunction().getName(); - - final var binaryTranslation = BINARY_EXPRESSION_TRANSLATION.get(function); - if (binaryTranslation != null) { - return translateBinaryExpression(term, binaryTranslation); - } - - switch (term.getFunction().getName()) { - case SMTLIBConstants.TRUE: - case SMTLIBConstants.FALSE: - final var name = term.getFunction().getName(); - assert term.getParameters().length == 0 : "Unexpected parameters for function " + name; - return new IBoolLit(Boolean.parseBoolean(name)); - case SMTLIBConstants.AND: - final var conjuncts = - Arrays.stream(term.getParameters()).map(this::translateFormula).collect(Collectors.toList()); - return IExpression.and(toList(conjuncts)); - case SMTLIBConstants.OR: - final var disjuncts = - Arrays.stream(term.getParameters()).map(this::translateFormula).collect(Collectors.toList()); - return IExpression.or(toList(disjuncts)); - case SMTLIBConstants.IMPLIES: - final var first = translateFormula(term.getParameters()[0]); - final var second = translateFormula(term.getParameters()[1]); - return first.$eq$eq$greater(second); - case SMTLIBConstants.NOT: - return translateFormula(term.getParameters()[0]).unary_$bang(); - case SMTLIBConstants.ITE: - final var cond = translateFormula(term.getParameters()[0]); - final var thenCase = translateTerm(term.getParameters()[1]); - final var elseCase = translateTerm(term.getParameters()[2]); - return IExpression.ite(cond, thenCase, elseCase); - case SMTLIBConstants.STORE: - final var array = translateTerm(term.getParameters()[0]); - final var index = translateTerm(term.getParameters()[1]); - final var value = translateTerm(term.getParameters()[2]); - return new IFunApp(getArrayTheory(term.getParameters()[0].getSort()).store(), - toList(java.util.List.of(array, index, value))); - case SMTLIBConstants.SELECT: - final var selectArray = translateTerm(term.getParameters()[0]); - final var selectIndex = translateTerm(term.getParameters()[1]); - return new IFunApp(getArrayTheory(term.getParameters()[0].getSort()).select(), - toList(java.util.List.of(selectArray, selectIndex))); - default: - throw new IllegalArgumentException(term.toString()); - } - } - - private IExpression translateBinaryExpression(final ApplicationTerm term, - final BiFunction combinator) { - assert term.getParameters().length == 2; - final var first = translateTerm(term.getParameters()[0]); - final var second = translateTerm(term.getParameters()[1]); - return combinator.apply(first, second); - } - - private static ITerm translateConstant(final ConstantTerm constant) { - final var value = constant.getValue(); - BigInteger bigint; - if (value instanceof Rational) { - assert ((Rational) value).denominator().equals(BigInteger.ONE); - bigint = ((Rational) value).numerator(); - } else if (value instanceof BigInteger) { - bigint = (BigInteger) value; - } else { - throw new IllegalArgumentException(constant.toString()); - } - return new IIntLit(IdealInt.apply(bigint)); - } -} From ca714d1b9d39c63cae6ba4f0eca788072c361088 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Tue, 7 Jan 2025 16:21:22 +0100 Subject: [PATCH 113/124] improvements to IHcReplacementVar implementations - document usage of different prime numbers for distinct hash codes - document purpose of classes - make implementations final - additional integrity checks (null checks, refined types of program variables) - updated & simplified equals() --- .../icfgtochc/concurrent/HcGlobalVar.java | 29 +++++++-------- .../icfgtochc/concurrent/HcLocalVar.java | 33 ++++++++--------- .../icfgtochc/concurrent/HcLocationVar.java | 26 ++++++-------- .../concurrent/HcThreadCounterVar.java | 15 ++++---- .../concurrent/IHcReplacementVar.java | 8 +++++ .../ThreadModularHornClauseProvider.java | 5 +-- .../concurrent/partialorder/HcSleepVar.java | 36 ++++++++++--------- .../partialorder/HcThreadIdVar.java | 26 ++++++-------- 8 files changed, 88 insertions(+), 90 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java index ae84542e662..24849d724a3 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcGlobalVar.java @@ -2,22 +2,26 @@ import java.util.Objects; -import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramNonOldVar; import de.uni_freiburg.informatik.ultimate.logic.Sort; /** + * Represents a global variable of a program. * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * */ -public class HcGlobalVar implements IHcReplacementVar { - private final IProgramVar mVariable; +public final class HcGlobalVar implements IHcReplacementVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 59; + + private final IProgramNonOldVar mVariable; - public HcGlobalVar(final IProgramVar variable) { - mVariable = variable; + public HcGlobalVar(final IProgramNonOldVar variable) { + mVariable = Objects.requireNonNull(variable); } - public IProgramVar getVariable() { + public IProgramNonOldVar getVariable() { return mVariable; } @@ -33,18 +37,11 @@ public String toString() { @Override public int hashCode() { - return mVariable.hashCode(); + return HASH_PRIME * mVariable.hashCode(); } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof HcGlobalVar)) { - return false; - } - final HcGlobalVar other = (HcGlobalVar) obj; - return Objects.equals(mVariable, other.mVariable); + return this == obj || obj instanceof final HcGlobalVar other && mVariable.equals(other.mVariable); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java index fe0f8fbaec4..1a099cc37c4 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocalVar.java @@ -2,22 +2,30 @@ import java.util.Objects; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.logic.Sort; /** + * Represents a (procedure-)local variable of a program. * - * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) + * As we model thread templates of concurrent programs as procedures, this class also implements + * {@link IHcThreadSpecificVar}. * + * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) */ -public class HcLocalVar implements IHcThreadSpecificVar { - private final IProgramVar mVariable; +public final class HcLocalVar implements IHcThreadSpecificVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 97; + + private final ILocalProgramVar mVariable; private final ThreadInstance mInstance; - public HcLocalVar(final IProgramVar variable, final ThreadInstance instance) { + public HcLocalVar(final ILocalProgramVar variable, final ThreadInstance instance) { assert variable.getProcedure().equals(instance.getTemplateName()); - mVariable = variable; - mInstance = instance; + mVariable = Objects.requireNonNull(variable); + mInstance = Objects.requireNonNull(instance); } public IProgramVar getVariable() { @@ -46,8 +54,7 @@ public String toString() { @Override public int hashCode() { - final int prime = 97; - return prime * Objects.hash(mInstance, mVariable); + return HASH_PRIME * Objects.hash(mInstance, mVariable); } @Override @@ -55,13 +62,7 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final HcLocalVar other = (HcLocalVar) obj; - return Objects.equals(mInstance, other.mInstance) && Objects.equals(mVariable, other.mVariable); + return obj instanceof final HcLocalVar other && mInstance.equals(other.mInstance) + && mVariable.equals(other.mVariable); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java index 5e067058f32..77e53099e54 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcLocationVar.java @@ -7,11 +7,16 @@ import de.uni_freiburg.informatik.ultimate.logic.Sort; /** + * Models the program counter of a program. I.e., this variable is used to store an integer encoding the current control + * location of a sequential program resp. the current control location of a thread in a concurrent program. * * @author Frank Schüssele (schuessf@informatik.uni-freiburg.de) - * */ -public class HcLocationVar implements IHcThreadSpecificVar { +public final class HcLocationVar implements IHcThreadSpecificVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 79; + private final ThreadInstance mInstance; private final Sort mSort; @@ -20,7 +25,7 @@ public HcLocationVar(final ThreadInstance instance, final Script script) { } private HcLocationVar(final ThreadInstance instance, final Sort sort) { - mInstance = instance; + mInstance = Objects.requireNonNull(instance); mSort = sort; } @@ -46,22 +51,11 @@ public String toString() { @Override public int hashCode() { - final int prime = 79; - return prime * Objects.hash(mInstance); + return HASH_PRIME * Objects.hash(mInstance); } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final HcLocationVar other = (HcLocationVar) obj; - return Objects.equals(mInstance, other.mInstance); + return this == obj || obj instanceof final HcLocationVar other && mInstance.equals(other.mInstance); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java index 45cae313e01..0fef2c18323 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HcThreadCounterVar.java @@ -45,7 +45,10 @@ * * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) */ -public class HcThreadCounterVar implements IHcReplacementVar { +public final class HcThreadCounterVar implements IHcReplacementVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 61; private final Sort mSort; @@ -65,17 +68,11 @@ public String toString() { @Override public int hashCode() { - return 79; + return HASH_PRIME; } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - return getClass() == obj.getClass(); + return this == obj || obj instanceof HcThreadCounterVar; } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java index 33a3033da31..3c1698c348a 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/IHcReplacementVar.java @@ -28,6 +28,14 @@ import de.uni_freiburg.informatik.ultimate.logic.Sort; +/** + * A variable that is useful to model a program in CHC clauses. It might directly correspond to a program variable (like + * {@link HcGlobalVar} and {@code HcLocalVar}), or it might be introduced specifically for the CHC model (like + * {@link HcLocationVar}). + * + * These variables are a useful intermediate construct for the translation. In the final CHC clauses, they are always + * replaced by some term variable (or term). + */ public interface IHcReplacementVar { Sort getSort(); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index a523d606605..53fd8ba0bce 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -55,6 +55,7 @@ import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaBuilder; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.TransFormulaUtils; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.transitions.UnmodifiableTransFormula; +import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.ILocalProgramVar; import de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.cfg.variables.IProgramVar; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.ManagedScript; import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.SmtUtils; @@ -264,9 +265,9 @@ protected List createThreadSpecificVars(final ThreadInstan mLocationVars.put(instance, location); result.add(location); - final List localVars = mCfgSymbolTable.getLocals(instance.getTemplateName()).stream() + final List localVars = mCfgSymbolTable.getLocals(instance.getTemplateName()).stream() .filter(mVariableFilter).collect(Collectors.toList()); - for (final IProgramVar pv : localVars) { + for (final ILocalProgramVar pv : localVars) { final var local = new HcLocalVar(pv, instance); mLocalVars.put(instance, pv, local); result.add(local); diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java index a972390d35d..d92ea5fdca4 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcSleepVar.java @@ -38,7 +38,22 @@ import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; -public class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar { +/** + * Thread-specific boolean variable used in the sleep set-reduced encoding of concurrent programs. + * + * If this variable is {@code true}, then the actions of its thread are currently in the sleep set, and therefore the + * thread is not allowed to perform a step. To achieve this, all transitions of the thread have a guard requiring that + * this variable is {@code false}. + * + * @author Dominik Klumpp (klumpp@informatik.uni-freiburg.de) + * + * @see SleepSetThreadModularHornClauseProvider + */ +public final class HcSleepVar implements IHcThreadSpecificVar, IHcFiniteReplacementVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 83; + private final Sort mSort; private final ThreadInstance mInstance; private final Set mValues; @@ -49,8 +64,8 @@ public HcSleepVar(final ThreadInstance instance, final Script script) { } private HcSleepVar(final ThreadInstance instance, final Sort sort, final Set values) { - mInstance = instance; - mSort = sort; + mInstance = Objects.requireNonNull(instance); + mSort = Objects.requireNonNull(sort); mValues = values; } @@ -81,22 +96,11 @@ public String toString() { @Override public int hashCode() { - final int prime = 31; - return prime * Objects.hash(mInstance); + return HASH_PRIME * mInstance.hashCode(); } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final HcSleepVar other = (HcSleepVar) obj; - return Objects.equals(mInstance, other.mInstance); + return this == obj || obj instanceof final HcSleepVar other && mInstance.equals(other.mInstance); } } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java index 4fe250bfcca..6aed4cf63b5 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/HcThreadIdVar.java @@ -34,7 +34,14 @@ import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.IHcThreadSpecificVar; import de.uni_freiburg.informatik.ultimate.plugins.icfgtochc.concurrent.ThreadInstance; -public class HcThreadIdVar implements IHcThreadSpecificVar { +/** + * Thread-specific variable that represents a unique ID of each thread in a concurrent program. + */ +public final class HcThreadIdVar implements IHcThreadSpecificVar { + // Hash codes are multiplied by this number to reduce likelihood of collisions with other IHcReplacementVar + // implementations. Each implementation uses a different value. + private static final int HASH_PRIME = 43; + private final Sort mSort; private final ThreadInstance mInstance; @@ -43,7 +50,7 @@ public HcThreadIdVar(final ThreadInstance instance, final Script script) { } private HcThreadIdVar(final ThreadInstance instance, final Sort sort) { - mInstance = instance; + mInstance = Objects.requireNonNull(instance); mSort = sort; } @@ -69,22 +76,11 @@ public String toString() { @Override public int hashCode() { - final int prime = 59; - return prime * Objects.hash(mInstance); + return HASH_PRIME * Objects.hash(mInstance); } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final HcThreadIdVar other = (HcThreadIdVar) obj; - return Objects.equals(mInstance, other.mInstance); + return this == obj || obj instanceof final HcThreadIdVar other && mInstance.equals(other.mInstance); } } From 972bd96717c3aa2b659520a1dc393186b38f3797 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Wed, 8 Jan 2025 21:40:30 +0100 Subject: [PATCH 114/124] add missing benchmark rundefinitions --- .../default/benchexec/sleep-threadmodular.xml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/releaseScripts/default/benchexec/sleep-threadmodular.xml b/releaseScripts/default/benchexec/sleep-threadmodular.xml index 738413dab4d..4347e905079 100644 --- a/releaseScripts/default/benchexec/sleep-threadmodular.xml +++ b/releaseScripts/default/benchexec/sleep-threadmodular.xml @@ -66,6 +66,26 @@ + + + + + + + + + + + + + + + + From bf310b5e17763d27d852c198fd819f484ced45c9 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Sun, 21 Sep 2025 16:35:54 +0200 Subject: [PATCH 115/124] CC fixes --- .../icfgtochc/concurrent/ConcurrencyMode.java | 2 +- .../icfgtochc/concurrent/HornClauseBuilder.java | 8 ++++---- .../concurrent/ThreadModularHornClauseProvider.java | 4 ++-- .../partialorder/ExplicitPreferenceOrderManager.java | 2 +- .../partialorder/IPreferenceOrderManager.java | 2 +- .../partialorder/SymbolicPreferenceOrderManager.java | 2 +- .../ultimate/lib/chc/EldaricaCliChcScript.java | 12 ++++++------ 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java index eb26ffe6b19..c78d94efa15 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ConcurrencyMode.java @@ -149,4 +149,4 @@ public Map getInitialLocations(final IIcfg icfg } throw new UnsupportedOperationException("Unknown mode: " + this); } -} \ No newline at end of file +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java index 43a55b0d63a..301e1500548 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/HornClauseBuilder.java @@ -91,12 +91,12 @@ public HcBodyVar getBodyVar(final IHcReplacementVar variable) { public HcHeadVar getHeadVar(final IHcReplacementVar variable) { assert mHeadPredicate != null : "Clause does not have head predicate"; - assert mHeadPredicate.hasParameter(variable) : "Predicate " + mHeadPredicate.getPredicate() - + " does not have parameter " + variable; + assert mHeadPredicate.hasParameter(variable) + : "Predicate " + mHeadPredicate.getPredicate() + " does not have parameter " + variable; final int index = mHeadPredicate.getParameters().indexOf(variable); - assert index >= 0 && index < mHeadPredicate.getParamCount() : "Invalid parameter index for " + variable - + " in predicate " + mHeadPredicate.getPredicate(); + assert index >= 0 && index < mHeadPredicate.getParamCount() + : "Invalid parameter index for " + variable + " in predicate " + mHeadPredicate.getPredicate(); return mSymbolTable.getOrConstructHeadVar(mHeadPredicate.getPredicate(), index, variable.getSort(), variable); } diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java index 53fd8ba0bce..7c443fa0714 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/ThreadModularHornClauseProvider.java @@ -721,8 +721,8 @@ protected HornClauseBuilder buildSymmetryClause(final Map instances) { // nothing to do } -} \ No newline at end of file +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java index 94bae198719..fce0f223a97 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/IPreferenceOrderManager.java @@ -46,4 +46,4 @@ default Term getInductiveOrderConstraint(final HornClauseBuilder clause, final T } void ensureUniqueThreadIDs(HornClauseBuilder clause, List instances); -} \ No newline at end of file +} diff --git a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java index ebe541e2ea4..5f3ccf8e03b 100644 --- a/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java +++ b/trunk/source/IcfgToChc/src/de/uni_freiburg/informatik/ultimate/plugins/icfgtochc/concurrent/partialorder/SymbolicPreferenceOrderManager.java @@ -75,4 +75,4 @@ public void ensureUniqueThreadIDs(final HornClauseBuilder clause, final List syste } private String getCommand(final File file) { - var command = "eld"; + StringBuilder command = new StringBuilder("eld"); if (USE_PORTFOLIO) { - command += " -portfolio"; + command.append(" -portfolio"); } if (USE_DISJUNCTIVE_INTERP) { - command += " -disj"; + command.append(" -disj"); } if (mProduceModels) { - command += " -ssol"; + command.append(" -ssol"); } if (mPredicates != null) { - command += " -hints:" + mPredicates; + command.append(" -hints:").append(mPredicates); } - return command + " " + file.getAbsolutePath(); + return command.append(" ").append(file.getAbsolutePath()).toString(); } @Override From 989e44b6b79bab6d130c31c7578372026e835f3f Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 25 Sep 2025 10:15:36 +0200 Subject: [PATCH 116/124] update to golem 0.9.0 --- releaseScripts/default/adds/golem | Bin 5180504 -> 6182088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/releaseScripts/default/adds/golem b/releaseScripts/default/adds/golem index 6b38d5cad1e68b63f3f9f263bd3d9434b00f4178..cbe2e1d70bf049ce05f055cede634c74832e67a8 100755 GIT binary patch literal 6182088 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 x9;k<9w*i##5&WmCVr}{x5%zW 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 z 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

gWG(_vde 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�oc3XK3bAl;9xgrs}y(&b)^9xh2OWhm;)S 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 z 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%0AwynU&q6od% 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

LigL|L1ggzifk3`0n`;d-Te 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

loFu`F^ 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 PUlYcV> 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

  • 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 z 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®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%0D`qv3-shcfcFLoCcua~<2RaV~duicx= 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

    Pyh|P;VcnS_UDh% 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

    o zUJILVn$IZEebB-+iT_mj*}?wb86SSl{l6VRtM>m6c~Os(`+tiEtNp(UHj_Kp|NEB+ zvhdX29c}=!LoF(o&((s#O}4C{q2ia{Rm!xi_p6|&skZ@daj_97yJhyy)r0cM&#q*&HB;NTT_a!M3eUA$4u9&f}R&O+C~MNyCMmUC30xM-Udk9*?X6q z__!F;Ci0|~Xe177sL-ZQ*6|JNC6U+)Sq{QR#p(tkHaA^l8#n$PenjcSBs-=(wX z>+D1Ck=>o_l=0)$8$b>dzD(eg9@ ztuI`;R8?VHaw^N^Eo>X~=PhRqzAE@(XUs8`MyQ2vi}$X^exJkIXm9Cqo=#Fvl|21W z)=QC!K{-*-=BYVynkO;P!nj8W`v!HVY>7-3P51-Xs_&R|zV>%MwjVIX`v|Q<4Q1Aw z^l)WCl&Zq0VIo`aa5sgXO zyj|BQ#=YcSICI7?72}>P*;P7wz0RJyh3pAByN&1Pt9ABMI{Pun9;UP3mF(3z`!_oK zEUCN?*~`X91}M~y4!eV3qE=uY8=iRT!D2Crh}UId$;lYUe$CUq_e=6|cA8g-h3xz0 z^mnvTWcU)!0fgtRjGIFyxv-Fpv4;PB^iucP;m*uAr+F7Lz|bTr&SKAlZJO9CSOI+2 zo|f8z^;o0&wYVGHq8OI0)OO*I%OcmmD0@?4?Ub&SSs&DuAS#V#naP#e z!+3lX9wIOCsusqWL>Z)NA?b~jvcN1|Vg2q>zQ)!ZR$E*y787a|%0ATa&P99c+(u|B z=wYK^1*>>zsz3x1zwIir3kUw$pZYb;d#8_e3pq>FMtLb-y?=yc1R-pJ(qKwLa!xwxBBUS@6H& z4Ib_^>!b;h;T01izc{&j8LRjF7B-u@&psPlkGXF%M#lSnuKlCK6BoL@D1u|Gi4_NZ zo;rMc!)29`iAE=@ckFh0h?PjHaF;^&s+LaPst?_J#uzhwC*_PW`f#*>pp9khv$e<) z8~yg6*VV{^#JDxZ4RQWj zQ~WZ-faR1K3NEdTGu(2LHN!~+52y=lW88}2s+u}^BO|+&SeLoOtorm38B3K4EW0>z zO($sjJH-K>J;tJW!aICECgT2XN%$GXAmNZ?TR7)w_Ezi|EUiRD{{*{}|9H)hdxRg^ zM$*G%FZ_6}=_!LBdy5pY*1?aKs?Z4ig!*i*tZG?VESrhC>Xtt#30o-n!lFEE; z+s!(sIE+*38r%^BFUSYdH01)Dz^Q6QZw$xes>_QbBh@%9i?~OYTEl#iU&7o96~fxa zVhLSS7V(dCdn0qZ!QZXk{I&uX{B4l=&(H~~3EqmsCC|Hyt&&xE^47EKw?FWCOb&P| za#cL12=TisC4tcv{Iez>kUwZjTEra`I=A#gDs;9wVTFYu;POuyoYnrhfCrwCEZ_rs zg56`0EG5==%OX7yEY)7myLVKX5mOk{U&X1KPP4v)EQUG#7ctV`E6e}V8$3j(9}#gD z=glRGH|NHAbFT1amGEY-PFAOw1OkwTgSdExOILY4o9-|WNZ$C9XGp;6fcCE4Jprw(1LS@N>7{!jIl;mDCWLYjM=W$K3AjA z2~<528$}Y1x9j*po+_^MMQ*` z&$+FVr{FL~l4o~dXKVxuW1l$D2HW`7!uHO<6#PSAsKvw}NuJVW1jS<8u)ZXCkou7! zx2|x-t|Cub0WFPjw3t?XK@_wM?Fw3kDzq@02wEC7TF^Wzs@YL2oBpX6G=P>NW@PvX z8#PbMQ9wDW7JQU4zKHump9_&Fs2Tno^FF9)WdDLZ(^cqM(_Y?h%>rYid_c^T>oB z(E>;}fUt_OB9hmviUH_W0DZk+4Y<$kC4=ASliQuo05ul))Mk2tnE909PE*kmSc|#O zsCaU}fP6C`LkfGIQ+T~w>Cq36?VXN(pHxWb6dWcitcn1+bkvZJ4hLj=Qo2DghcAUW z;$vnwr}6p>@0=JjdazsunqU(jd%kpYd}KJQi=M;ALHJT@_}xe*7z2lsp~A9};RQYy zLP{7zX5^kvE5_(8Rk-RnsBAOF)3HOs7;9or$n0yYU2m~h(A@YPS5Dm$(HxP$vJTmg z-heVFvY0e*U%=F{s>FIwYd;7ct88WSU)ZNYM_(!5grX&3m21@*)&{;2Ic2X-g4!j+ zj9ewFlktgd%A}XaANe3DT@l_;<{cS|hnHIBT2pWYWQ-SIgkUes`7s zyQN|0_YHUS;M=cazXYU`aLEe?LCQZ#IYgy7#VmL3Jp(nQu%s_4`1g1c6+8+IC>}3D;~VT*yTrBLTEExb*KJhnLs1ch=AU8<4l4zL-Jmk-eXFisF{fxE zY{qaR72hRsIKwz$O-2QeTq>-qmU&mf%u3(JnL~t6^BC^-U~@*Enc-yC3q=LVTLm2n zB=-zLqv=1>P62!Gyb_lysEoM!iZ#$z_#zq=Pp5*M((us5C6OY0soLj% z5Bun;MLA<4J%^wHmqd!uRo779o)TnhELw=4Z!?1&&j`r| z0gDZ^At53fxUrx3r62d1GxZU`;(L*hVx77==K*&>_Qiuf$~nxMO#%>S@?OMe(CX)N5w4O2!ddoQYfN?NB;_vI$&JY*@ltaXl zh1;nCN$h@w+d0^kpZ}eLy)q75jVLg(O0E#c*zvLIdVeeaL5&`vd;$MQhm`Ie>#=X_x)%G-!r9w&m zrhWLi%{_@FdArD!HbAe$*C>I}7r|&~%lwlCp{e++@Vp<`LGhKC5nNu+VIx!v*W!v- zEG|V_CbL3d`vPaAa2Zbcv+@5Q*%gKM_5fzg6-g&8KD7&e+A25EnpTiCxIEJ+NB-w4KZq$3}$x@#z zUZ$^)ukO&eu$kahg=WlRW*{8qLVma(bb}#uv2JD7uCn}fWU{E~*Ine5`{9E1C=|xn05(J5F64ax`fyDYV1nZCNk|+Gv@7SugrSSs>A&a9YQn)+CZ$X zwZ)%3@u}Gko2B)jl64~ct~_5xcj-#zIZ4y9ZyO(jUt9L!{8r$bejR=HiZT(O=e(YS zm^u$Cx%&VxWt``(k@@Kw@qfEG((^Itl-E;ZRNO#$pKFb?-Z>~Z+cV8`^)kLEN<9;m zADzr|mqdDQRr4GeR<&Z{`y(xgXkvg*{EnFT7W@vD>~V0xLkZhn8TPTnM2Bh5p6IR* z<&>}%z-xH^paMsHBIdg@)OWNV zw2Pv&*cwWgiQ6{n!X16-2xM9+=1jGqwcNj#hD9!vcqXx;ZIek%TLWT$#a|_kUhG zaMET4v5)&A7k9^F68m@^z~Ua&3e&VIy*^#CnwTeDEQR=bfS*!3(ZdGhL{fJxL$An8lIV_HlWfS`-ruoH~!V=fP1vkj7 z(1;zU5Aq8ixg#fqm+eVmfXJ|NVZ4-iVX>YUF#mWx?Y9py^HJ~awmHKW8QDMfckn@f zTroNQ#oDRmF=d*2kT+JLOxa?+kwEN1Vzze8>ATJRDg?;Ah`VP*h+r$au*|Bmg~;sN zb-@GP$na++fJ`L!VT?nsggFFWEo*MKb@4&da{%c|UsRApmglz7uGIPj2P7dr4n0D7 zq>3=3>4N2w5+ybWc_&_XL;J)CjKNyhcOm*ieZk)NYF8Gz?gG|V?qM|9+w>d`e71r$ zp7PCRQEb&AZI%)T?4av_nSa=Hy;-77pPbspRQph|mAlG|4=iU#1TE9ou`&YQ2L->9 z53m?UsbB}5h<~OC_RkB^XZD-B^(6fX}O(5b@`te8g8h zOZ0XFIt!;aME}k$SOafWX`O@3j1tUqJM{8bbO9_VEA0ca+OdpXty1d{T8EeLt6J&s zMy9x%e_jw*I>aL{!)RrDT1G2Q6zWufb2n=$UocvGCf0juy_odpkB=y|k9D4~t!uX) zr@GQPe@pITb$Bj-%IcE-&GD+oplu=KYXzw#;cNP7-Q!u_3QKx{Q;Dx9!*&zntFJ6< z9L}u?%|j2{&*#he5T_o;c-EINWnV^ij z*aEtXnzCpMt+TD*&_BHRV;Z6R_DC)EDr5^QmDq4*Z>4uda(l&s!sgZo>aIZo_(+##*^n8CDEgbp4c4xx-pOD*g}^a2xcgcol!f?vW@K(( zxA2DyTRPKE!Vc%}BD4GKQ_vC?)70?$EdMgql-Kiipfz^SF5t78@h|IlFljerk5$a6 zov@~MV**8TH3aZ}Y1U@LT9A4<-(l)!UdJ@V=w}W2tWwe@=u&-pfsuMMm}-8}1n{wR*DuIv-Vmb4Sy30mBqi zZ(XPG$QQ8m{#p(r1jmtOx^|hacaS((Gk+aBPYPR2m<3O8U`Sh5N4ktYXxj=yZGxdD z5sXBAP>6EXo7lzj>xzRPfwAK;!WBoxxo~(^;xaN)S@#f#FXfb2J;SEB-+v;^h2<}9 z-9x-uC56!IFq6O%m{wRzEMyqRmU1LPq#nEY zkxSwR05)bsziqyGs3SwZ|;(k@QLy5{ZgDkCuh)KB7Blre?d6O zxsN0DmqF-S?C+;mKIczK4d$elAEnz5>O}ud)@ORqW8nDum;^R=ZgGnm!#3rq>d4gS z!jf(rnJTe1<~Pdz6T&`=9wSRJQGHKxPBJX*b|0r>l;Tq5w(eqz-OZGjUmqwJ^Jkfy^x5suQDRNFI|D2> z)X0E7u~R{f-cva51D>>DkdPTGjL;yJz({+H)jev#NTt85aq2I*$1%>d^;$NTx^ z!HE8X)mQ5-`*Bw-iHw$QTNIPupnUuj%Z=FSjEXl!noW-i;Q5Egghy7yr?6scByl2R z=q{rEp}XX|z4@=B(flR$AJW3~wMwr7lGwSxP_QNTI@5=(Uncz1aO(|zcH8xiWBB+K zs{^6CAdvNyib69xFU6PG2z?;LONNFi;)R3z#CsuK9ovtR&}4^0u@8LXxLa=rMB!L2 z7VIW^DW|>d5Fl`a9o|N}R?;WV>_;X&VoiQT{E18*<|h64J_qEN%K`66%b3e_;F(`wRBnz?>=mlseAxDl&)%!+*_l zaEVRW%LHHef7jyvOgw^u`1xq%2QKHM!zawB)BfJOt#=lFl7nW*P|v4uryugTH?T#Y zj;`TT5`T0CKXN)cZjZysHHU-IZ-#K|JL&ARRiPC_6NOa#pm3MNHPZe`GmCO^R^<6F z+}mY62}S<%_SU%k!@?)D&^Rc!%Z({>{p6v=p0 zl-@rwC+9D!7d0&e!Q;M^s%@QO|8eMPFs0g8@8_nyf0%p^pLDJ2Uzf*69B$uRohMzo zQgKIfogAp>(P~GUZ!?x$&eE8W*xhOm&FWPfn$=kQ`3DjpT*Bkd<4TM*;asC2TA16* z-`#j5%FPE2@p$SgbE1()?!;bs>Dl5B%*PXrB9&j1HGitgpL%3Iof?-%ug2%4b}O)0 za*8CUC@tr1$(brSQ`2(pFIG{tWX%)YUe0X{tIA>6d~6Wx0mb(Rc9yfSDGx@=jo?nG zN&s-MGV=;LG4m$cn>kym?p6EwtZVaX-Y2hLH?<@Mj4Ko`z;!5%;&kD6T77XWEZak83wqto#7bWq06OnXvvuTF=mdp!s0|}hbB?mZS zAETZLzJt*w1xi&mP>>9*%tpUQqqf?tU5eH89Ulej*$7(jBSDL?cmesEJA=(rjeA8$ zQ*ss%+$RHF&wgpZ4GC7~1*3U$-_NhkR>r6}kzU%EP94B;JTF@q)9trofW>VA&0P*` zzEQl2{$OR0&fIgSV7jgM?1{Ap7z_JhhlNl%rX|FUAoG#u#ce#lnwZjjMk%_yU%H%H z&d^$8WbVmWjQ#zV#pY2u*w%mcRka7^cjHf2yr1!5SAMvPh`_Y|e1BCxMX33}e7okf zf_*8-TIA%VQu)$Y9+fk{bPM-l710ArZOBc^YU7dWeVeUD5WpOw&nsk*hc{)Fhem}( zU(_&5MJX~d<$?n(PgKDS^08$@N`C5iq^g#uQu0L-Ozahx1d{)N&d)YJ{y!lf&x7Z` zk$jBZWs8=y`3h>srij)g_eaTml&A2Smy|lOBC^$dongL`&+~Nt*OQNP)QI`tk&m&5 z7}OBI0yb2WcE;qmgT|PGd^oE`^0L+43?fmdgL4Gv3Q6%e^P5)S>UI z;dieZe)q(OAL1;b&+B|84(};)d>Q9=ov*~R+d-z+O$sRBB-J-$QX4#plx_ z=`J}*eJ&II^|xA{Df!xrtQGz92MQ5c_$=@n(Lkr70xH^+bZd7I$Je!8tDn}c;MP-d zj;pEu<-WB5j`t& zFC8VWP)#|gujp=5+$J)_6(Xlmmy2D1Ah7YYZo+b&U#(D(wXji9MGJ9tHAQv^hr~72 z@}o%N84!b(f^F{Emy5E>Z4TX)ggQ=3s9?+pJo>ztzeHL6Db0zp`mm#z?mgv45tX+q%xaIZuk$q4<6-Ek?EC#CYTmFmaICn+^dN)aACb6rJpJ}OvOBvI~_=}v)sRUG7BVp~!m zH>(FgzNiNvJ7g33gbhD6DfszKz;CBrpwevk?X}*WSfRuu?9B~%#sU!+8U{8eVjL<)FuQMwooN_NG);LE+H(T zO7M_cVkoU7Ae|tPCOa?sqk{K21s$W}EX6CpdxLs_MIPyr3a{pm!PF`=I7{HM$H$3w z+ILl&<`3zglr>#|K{XG-<8=?QU z)1Fmn13VK37@>c+)BebB$DH&UfJv#NkEFenN?`3s{&+6VACH0^HKfEBLP?RKNInOO zZFwT~2_6pf8^_l+JMB}Irt$TLo%W7O)A)McPOIiudVcirbT{pX$LDz_sAs}ZBUECi`S|S^Uv;#a8DCu1fakH2SKOeK zD*G@cVRf821;(F+MS0e>JhaI*85`mw;ALH6ri=hCftWQzMgVtmYWU1E2*~_n_JoO!A zMDNfw=22r_tV-s)qqRS^!}=bzO9*~4ONf8z7IB2B9~PTHiw@{z{PSVgr2Kjm#uoWC z7OckQ*9GcX%dfN4vzA|{@hqGH(KP0HNX2}P?%f3GouZ9UFNHQ2+9e=b7V7;%_rFNZ zX&K}fJ;=&mc|en-AC%Yh%UZq_1>)!souzBE>4(lK^vhb`@($~J-!73ILj!b+HvMQZ zjegQTf5O8V^@{j^mx)qI=f3icKm`^+E z-`uZN|FgPO2U>#czXPkrmBhue>3uZ($XPD(JCLeB)-`MR_TwJ$wc&e&`V;uy$vL5K zg#W9YSiZfN1yp@A#o`6=}cD;zs4Fv{5j$`3CbJ3KHXUS9A) zeIp9TjtKNs^^GhXJ2KEcp0DEUF6gvxlc2l=UP!S9==flA@i~`Z?~JO=kx@;uA+qF8 zAdr0z?!MkwCB%M!&a*a*vb?KRcT-mgI4UWBV|%@;&CWQw^{nFJuv$>`0=BxEB z*A08P&pgU!7s)Ar1Om(B_#|HR`TNmPWj~JQzggAZi971^kTJNe>}M~(NfjL@mR;e$P#vtTlf;m# zl0<&!B(dA7q?L&zw@wQD0Z^O7Hz0u@Ws{rWp0+KJS9nDi^){vJv~4%!72bqhaz@@6 z)pC3A8E^4nx!fGw=;waqSr}=l5xK<$^{TPJ`Eot8vaqg~6kI~ObKN`fX$AkdI0F)a zbh`Ck?Ra;!t;SyN%toxj&Nlr0)8SXBves68+9|lLTg|qg>#?|%vB+1p{1trT55#>+ zAUL?d&C@RR)SaiD>ZvDBpR1?dJhiB&T%Ka;sXtHK)zbi;KITc^r8X{4mI*i@wxS@B zwy}})HR7X4xT25*TPD3b>FY=*B%Mx|=(D7wSZ$QM3%A76PuJ=FN#77p>!Z_D-SMh54Ci&T+atSX0hqJQD85^5#(*&uZ(H{>xU6!U^offtSJE3xAHzn3N$$q`jYT| z^4F#2|KaXU;H#>x#s6GLASikw z0`mGCQVW&Ti8vAk&4nAiS8tRmSe`>gf;fwXdjXXpcoX3Cc$K!I_Gw?~vxBx;sRNBD zm@oyXm52kVZ2_xrj!}uC5D>}#yVgGE4grV0|L^nr{NJC?hum}a*~8jvt-aRTYp=bx z{OYnddRX-`-!&jcezCK$HRd%G`oGL>^qtwG{xT1iU*R7ixDZzesYDY2zB_878ltmy zuLFQ71i8_hGoHnc#t6FCp3mT5g8k*h@img?U@Ik^sQeb(4RFavEg z{?GfsY7AQ?eLl#sT#daY^b(X^wsQBat5&=-eRQLLQMhkrUCGP^YeCJdC_$i;4@K7A zC{icXz7ji2wfH+?a#bvwaTtjzpfFm@XR+pTb-LP9@b9<%@9>N0m*#M%_iKXp@-<}$ z@O8(epRs1aVNLtG0FAMxqGg|0v+pJmG5TXk#Uc`uD*2GSg#DNQl9y}z7v%T*rPl23 zND2%qQ4Q;6rnby%+TA4@T5IBIOzo4!yqbJ9l}x_wnw1~6dMp3lx?|;ETZ0I!(IU^K zvMDc1{UNDe%M;oM1UICXRa*Bp0vk~{Gx|vu>f6vHy{%X_`RW`DUz>H(XZ{|bBUfUGl7trn%#7eusF5RNp#{~X+ zWCLafbW)eg3nBZM;zP&p6JrFVZNcnn=er@tfzr8wfuut27mKk_yB<~_xsKcm~YC@-fd!qfZr@XA8hdKUB(yUYcAFd zIsEJmCB>H?+l8OK6G#AW|2O#AYt-e_jQuP8>^)A}|BRo#A5k-e00;dPv}15uUW&GHJijzDqJ&o_2fmEpZ8W$+4{jP6T9*9K&f1;&Bx3KlSnl? z@~TL_ZC=H$UQJWSOgWDj*6*FrZ{iW=gIL$nRIzDlQn#Sqx_fI8P0I`06oiScv@|AY za?EmS@mun1NUn*_+AgQFpkga0o+t8sTW#5H74NIZ{)yO$Ms9~MJ;o}8O(bG>^3|36 zxo*tZ9oIfK;GGZx=q17x#~I=7mQH$w(VyCUjDpFIqwS?Y+A_qlX3KU8I$ECXsHpa% zb2^G+seU-1oY2oo_2HL3F-l5B8!PUpscBzh@?_dvPf>KlhF57#O`6bJ>!$;9qioEBhiVKUGNl!6 z9By89*az!;L-zGVx@Vx|X+BC?gCm6Hu(|EydVGJ|8~7z&HNE4F3kK^o<#C z&(|@aZy(6~;ntVIn;c^+hX|&&oIBpSZB0RH_n;}2%o6EO{hg`i)po|harDPtC7b!gs_Z6p;R_3` z&Np8x3!=N;loPY0_Oi8{Kd;TpyjI$oNjshFx!i`t^RQR4SQBJ1donX!G4ibXT_*8r zrU5#`V{lsapP0n!WLB^R(ZMue!wUKE7$2g$n$JZvT6NR-YZ{k><~z4`k4ejK%{Gbo zt=0L7(wa;%MOalzYiIL8mD;vO2w||A(?`?xY@jf0YtJS~-4hgYS#+VFQs?9?0%MrlvB=<=+1*<`8>Ae}6$m>U#1X1j9(`hU(%t$BI|3ZQtZuuEhkUXl3D5O*Pr>$ zMH1p6%AteU!=a!^)NKsczn|T(Zb{HB>u(3>#{$ z8$&^~G@(IK@vJ=sP|BL~smT)WE89&*_FW)>{6`Q4xs7R-0_ww~;_v~iGya%g4J{>i5e1 zzq84RcAGjHlk@onA;~BBrPs-o6kWrid1ELVIdn`;(HsI1dp44O>V~DwqAcir&vUfP zpy3=J)B7e|d5(|KeG|r=t~tQ({{#!R|}DzEHYnd+#Vbcxj7 zm)Z|fBunj=ltQV?D|sK+SLz)*W@V>(Ip- zVJ#K#8{gx78v!AHL?eh2#0}B3&6>8^Pm4++sUP`NDm0MOqN0Mzc(+_s>imIE@$QZK ztuY79nfa=I->ly^cmAH*!{Bd*`6LKByFNAZIDqO4e%PBMR9*4T^`Es6pMwrGyR?G- z5RfMF~&W*OFWKxLx?T{Yx@kL8hD`O1z>}!~U8~H5KF_ zd1T)(@$Wg53h?<& z$G^G_1V3Ls{=HMFSLkzq@$X;rVCMG+82{cbMvTap|H=6G7Hi>Jq=p3K{;wYYSxIof zCo_K($3%th02evfxbpL#wv62}$2*1fLt=+?L8^T^usR9^U2gDlj)yi((>cG zj@@w;pSsGYH8NXz(3G#V=DZnXir>FiGmpIg3yJ#{^WuIs7kpN_-O|k#GM{5N3C(PI zPp5VAM$NMI;yT%Sac${44NItATe?94U6-netVs()5}X^utlh_NW9-=vLP*|!Te#q^65S(j5O zZT0M{4IiX0Bm0_$FEMBx*VnW(_JEkQ>YoN_%b8z8;R^x^C;v@ric?hB=K>|KED;nj zzhNan-63~%HVoL)0W9(R_i3T{1N#C7J<{LL5Wl~}|I`tDVzJc-k~xhc>Ss3wWC@Zt zYx3qyaz;NKz2`Ym_wZ`rlpl4hopIt0YeqNzOW2$Q12&bdPI8|9jL7|a`5S*=Z%+D; zmM2SmeO(;XENVPE7KQZr=41@t0cE6PQPcgMy-;_{cToB{DHQd=8BfjOL5iv z3ytZ*d6-OX(xq-~LBlz%=CofzNK=UhLHeDs>RmImN+yrh0XnChcdLZZq!JBP#<{aNRP5%ju=afAYW5w7Dc5DG3RxJ6rl@=yfkq zOqCn}Q!?}zf(yiDfgG4;@Nkjz{rpn?5Yb<98J+#1bnpk#W9jPK;PUNU_^+3#G_i1% z93D62`LaE!Wn*NSUu5JS(VkzA-MaPU8$WNq{*)@{r5VtP} zj}6b-_tHx*^_=mlHaD~NO|ir5wVB4N65Xi&;^a-%qKOBO^{_KWA$1h`lFLw#;544bECN115>qEW-%7 zq48(^V?S-`IEE;U(ojoNdzZ5I^pKU(eXc&>I^&i|dgS1)oU~=lT}KC;`BFo}EmV+R zEZZiy8X0A>WZ-CH%O37Cj?*CCSn6l;G?@t8N8_!kpcv zY*__QhC@woXLZdQm{X4pypc@|%9e8tTf!Dn<%|p9PR@{(#^4&MS-B{OEk|>T#?n$s z30ofiY=$kVL9;tr82;i;1K~6nQn;c1SHMJF91B80#I<~LpMOTn%QGda;mCy?sTh{a zc-aY5W!1}RcV1HVjB+e&_(hUsn9-$u^h7S==0v)f9EF^=FgO)MQG zMbf7oE`usj6hO`aknUwP?hglRQF-ND&f{Aist$2R<2tX5>Z)WQJptwYW2WUsxph%z ziR|Qdeo(>mx7QDzcnp_ZAaAN%#{xe3dGp%{Bt$1;N zK=VHJXh4REKQwDrN9?x6(p8Q#w_+`k(AsznB0^M9Os+KH?p8xQiHomqoN-CCrX^yi z#UkC|L0jewcq2?cJX#5+-FL5gS~^}Y{oq73MShJEFMuOjqJ6(n3Z+k9@J=DiDhE&L zqE4cDFlSTe5cK`0atQjD>d>d&rgk5bw;X9`TK8LU>!TEeHVCb~-ykMy zZ|@ioPk$dNJB=LG_68$pkx!md*FX$pVZGHjVntLfIwSg}_H>(aY5K12SY)i5573W^OKcA$ztm(oFaaQ&ZhNZ}74E$JhO&M7I*lXB_P`)q*}bT&f@?Q@nC zTp2IYUYIEuVxzSMlN8AQ&lzdL<-^&^;xod2XpPnwyk6u}9r^Dg)#vKy{ur$@ZS9ZI zXw5f6shno2D7}In2ud&edX&D#0L(?{%!OZ#Qt6oDG>wh~r%js_r`DV$qN*L=N=&p2 z)`OkRxXntWx@Y?wNKFL8siv}bl-uTvmayMw+Gq4co9KyU-s=q9{VF`OH((gv)~k#m zj8oaWNR%ZQ2wNAw!P?EfV{Fx=jP#6(*)yQ*lbb#n$H9A}e=Yl` z(xPaf`i|R+cfA$X7NY6t=!U;yez9gJ^Ao#8PW|*kG3!afCEf3!IBTmyjghidYy_&D zTW-H$FH7y~F=YdiJaOo%aL0*$MN-CY=e8lZ`$VhmKSgF4E2XNesR|FtJ#$E6^r*D{ z{A%KaIphg$5Dt~&)KgnH?y<^#SyV*b4-VrShN76&gfmmKNc3T=x}F$K-x)%A7-62L zo?u3)%eDU~g2yN>qlu8M@`W=q2O)sO8xPa%Tb0Z zAlyGbpmELw4LJm3*S{yI^~HKkWhvTg z?s`pHB2y#DQfHyO<+7!FE)cUKU9^&&jjCByf%)^I@-=iG)MSj=HGwgE8t^EF8aaag zOEKh2S%aasX()rCcOMs(=W9Y=&lD zeC6$(EC=GJizdENSOA9TMJYMVy3Pm1zO>@9Ok<07=q-xa(mG#kUPV@cN#>E%Cpyuc z&QZP*`x6e#{~-sM+RKz{uC`*Fak`beuA&ddE848oai4H@Wr!QkG4A)s;lK8#`t>u; z@l`s9iDJ|n)={I*pyOFC$uUZJ;~%60#_ad4H#zK@o3Q=KfDdon-f2Mgp$i~4wz&_v zyS5Dk1rr0cZVk7Ee^_0!{&FrDJ3`p5JFRm8fOjF_f+?NHDALd7Lzt`h0;3?XUIc!~ zDXi~|D8|4sQpozH+`1QaUTBu9fZQ})QBxC}lbc0_Z`9s|Z5UfR4cY^IimBPK5S(LZ z0rXP!j4MH!G=;E7Z5gDQ@n-a=(9__rte5m4t3QAG`;4#$F5dGc&O+gJniTyDswDWuG*Hw#7Fa$qWF z2rCHQe3?w8i`rkwl|SB0QX#(%GHO7P`%_9EyC``xveFHr>%CF!O7Eb^0rK}tkLYHK z$YlH#f7aWy8yh2-jIZ`j)h}x*TbsTkk%Wnv!x5H?OJ=i2u`4>{By?4@LVIeZPN68{I58ekcLh+O9*fBfCS)KZDoXT6 zN3-GdS9GAMoXc?D-+rr89~rJ@-idD1YK%OHhL*4Ddc1HWa0@7iS$pks_T0I1b!SP` zdh!*SVdqWMnR^@SWx!311JgrFycFY*uE+2x89~Q9;`<*N9G9=zf2JScsItT-%hZtf zH1;TUFa^>4=31aB@CF)a!eSC%)2XEz6n^$1~ z#?<20NBlg*ndLhrf;^Q+Wp_VnU{&TNmqEZbsKs>!B7%rXb-Zj!P+lAX~( zkACViui6fZ?)~|9YCo?gTWxP<_FoG~u~(ic@#PeoTId~=pX~sI^0tY2moBQ_oHt6} zWPnKT?%?a!fiu{9#N^82Kz4-(IJn1*wSZaBE@Dmi7%MvpxH{C=s%?%c_pE~@-%9tz%oa{`VUAv6C3 zw>O(Pt5VYUYkceLX4l3xaA!WE+DrzwFZzwL$G!+Ga529lnBOXH)cnSSv%v)nF{W;3 zkc!?sKRfsHP0GNJ!*dvMwH-z!qBJ$9<>9`!wz8Dw-#wF zJ^=Ufn;5&c^hXoHf$?*u1 z$tRL@?7&2tU}_dRQzezF=8$W7S9q6i6=dVB`<^gaj#jS~4zC>?jA5&O4fd&b9{wk# z&FAzFso)d%ks$fqyyU0-oZs*m>#b;DE+tg3&T z#(Z&NrX*pjYPnhD@=gXa?ZbF&M)ithcWN6u^`S`mFgjqnGxLDGCP*&LOU^K9kG$lz zpvRwpz$_wu6ePc$mpm&-UXho4q$Y#>CrHjizHGtIMSdL9)q4o#=-Y*2*jX49G!a@Hf7ESI1gf@i%y$;}y;3E}h$EW`U ze5|L-vQwCPwR>#!zWcrg-`-lqJyK(WmCoSa(e%G?xk`^eDZy7 z4d1n=?stHNX{I#m&t1Lq_?TUv^q%9@tmt`XzMF#}?_r(#muN{d=MN^o>YMb=dM_vU z^W@I==J<_pL>7!e#4ytNtt2vd&MB?9$acAAId6Y?L3&qJz8PR24Qx z(i+Z`i>4LZT)1P^&1sbyZYxDd30HwtrH&lk{;X8wKKsx!9pI7WCuEY;lhFt4dI)rP zt~%(wg&Mg7(OC0V-4sSXnjA2tz8MveN18A?LXt8%;&0$Gqa&95XGST-oGGP9a|%{U z_L^q}4CJI$*C94^FkBC&A)kuYq9NVP*j}8K39V#~8+$Cknej9DtQ5C9+~1w@<@mDd zdT`XFvt%T#hn*kvUMlN^$iw4D;AO?$-xRLc=}awT*>I=zVSQlsMndbuEWKj*M#|R9 z^!9LMa4=yO^^}=od%H!^<0#VQKNebUpamaHA5p#r_T5Ifx4iY(bzdhhmT%7Cv;%07 zNBFMDEv5q^>#t*`d?hnwR#lCt_h-t!#Lt;2KUN6Bj8M!Bg{K}+`pQ^g=*r;9=m4!p zr^*}_keMnok>B;EAn-43IpgCHfy%g%GsENnz;A^iGGppZUJh6$Uo1W)+0uR9e5n_} z4`Gc+oz?1@?!y$XldK+V`Xi&*Cxb7m=ZL~h4?S&_S>WpF+X?V`%ivi0eAGX#?qSHh zuY&(rzQYE%%tpQATX1Deo=GyRjOUU{BkNY0MzW^AtQ;y!vPhU|?X|3GIH1As4Bs;b zK#%){P`L(x-#@QZdX~e9o95?oqVT(~+kA#($fADa_?j}ZrsW-%t3hwq62@)$ zI|O|O&@nk5ijX=Gs8pz71d+R?1h1V_A5{XGFOG_+RR!XWxt?^9WZok5FsQ6s(Rp-d zW>Jbt-)H&2i1uUkqhD^|UVC|Cctkv1y^FB7RaLtR+<$J6PK;_NlCHN# z(j~jBS?*TTK#uWtOabwO+2FzO$e6uXf(QFyg_+>NX9oftD-8t-ajX~%NX7uyFoJ=e z`lKs~xv&sKc%B3iiVXIH2-{dNW~r4Z!avZvaLVf$c8DTej|U~@J4Q_yVXB=t!e0so zocYppwCpX7CA^r6Y!k)Y)YzXTPcBL%qL5p2obw7}>5Jszv}O$^d^hpEXljX+D@c@v zn+y9>Q9*0pXmjI2(#ACx9Lu}f@3h@1&hW(JXjJ12TXNzInOkdsAt4m2y(pFV^QGqc zcDf|hW10|W7;(Zt)l?YfRNlmqGY9hfo#a`WR5e)STk_rT^FrX(mvO;I1QqQ+OkQAW z1L*~=i!$k~5+6!ZcnPh7ymn#?PZGMM`#gDY_ksxS|4fKsmZaok>39`2h0~QSsrDXI zs;bIAY&|~k_a`Phgd2{0g4@4u9?_D4&*Zh{JRt>VeWBrouW8FOTi??4L3?!ukSd}z zWqMtIFS)t)u+XV2RPfCE>3e&2FJNWAruY5ahpPdHl?5q@H`M0R;li+qfwboIAXbCK zVlY?i!#mlI`c2K`&YgMT=dY#_?-wB3;OqGlI+nm^Xu zh(D;q#KA}u)Uec$5D|)%d#(DGegy^G6f2w*vENq{FjBThT>N6R!^QQ612^ir+*(w$ z-lpu(43^4;@tXIsRHQKm#YSzDgtXiiXk6WA5N@I73AenvPv0veU%#TgG`pjPFHZM= z+)-|d)o`$&RUZbdxcxGPs8?!ZdMnK4mi$Dk2;vyjUYDh zwtmDY5}e4q=@afamwGaBfL|Y-*do!1afwb`W6eE+ene~&npl;7QI=p*+qx!C3GX+V zvo|!Y>oV)BLK0a95s3aZP}smL!H9=(UAJNvlih?P!iIz+o=v!v@A6*BykezYZ)ng? zIN~lij9ab=gbXv~C!(%XR3aZV;3Sg1V_e*BufCx}f)Zm*+XsYi+CWrd*lsqw{t&D4 z68GvnD`E|FU=0Wr-8%?VMu^L^x~L|S(aZydHC!jHW~u*~#WbsK1UbTGD@}|Z0eWAA zxkA=3o7@^(wo$|ME=M7V(3@6O&yA#Mscgp3>Y5MXIjzj_2C;62+1ifCVYc&V)aMkm zjbs-tBh0X!M=t5qFvD{IgEcyWq>Q&EGr%$*~ z;P=A~0fc+J-8pwF_>wE)gsOa@&#VUmdfll{J)V6u-cak3c*B=b*`k_=H^e^b`+Q-6 zA9g6iFfcBJcImr@<=C*cVip~=QChQqA*|!R;mCA;C3F8^Vz^ReLVF++>?HymJ=F=! zlgyb_G)Pnr-9)uZZ9dV$aEH`N*J(zczM|`Q({g4UYi6u21cUatl^!!sJc}DO0^3hJ zG%M2~jWR@T%-3#gx?2Q>KC7fKVup#3w+wqit9+cXV~D#RyaKrN3uKyEfZQCIx_vLP zhB4&jqe4lvu6ob0GrUzK_`p&bSYPm5A&#_&R^kU6%FMxF{j?mc`#fNVKo`S$V@dPb2C;0=`v+6b>Bj7w0)xv(o zH0^iGA4EQ0=u&mfD#Lsx%J4~6S%WCUPQ6r8FqaLacrd~)a0F>eTE?b8;tw=o?(gB> z7II)*38-A~M^sN(iJ=mXJmHEQAs2x8mBDmhA=|uTkTN=+4HNu9gNW33;z!uMoQ<&i zkX0!B2Cw@<(h%zBv8Ijz;j#@zToPSJ*g0}C#eReyRT5XX7A7f&*@&tO@7koi6HO;q z2T^q&8+(VSb3`$r4Tbwf)-5BD!9I+y$YR+!@mhUHqNF*zR}2ADos_b7#md&n!m?HO zUwmLPA_zpJOEd#v?XsYCkJt#H%vbB=##Z{BgwoaMAW_frJFJgZ*(+rd9g+okj5>81 zl)X$FBFKh_VJVG^C90zHecxu!l_4T<-KBF>kZlAKUkJoQt=MDWtcwpvRoNHSI6hyb zz5?NNWJ*=2If&IB1u!aECV@o}pkJW@mJ-31F*hQnWyL|R1~9BI8i3j1K9O7YO5!;% zHE94AHAs6_*fMT>kx`@Pxa?Z&z+uj`KkOyY%DpsIP%zw%Jia%E4oJFWHf6L1rjOER z?>QRqS=0!KnOt1)r2^vYe@Q@`GW%-<#1Sm_<_d@h&|m)(0nv(X%@q*a>c3t<%n~yo zefmAmsDQBMv@y^!qA=4_goO8oeyMK*VWP!^7_*3ZVznoEMs|D?q&W3BDv*ho1}Odx zpb)ty(m>Q+BBeE4@e?sFbQtU-8in3kb3fw&m#%WXqwPe~>D#C$npP(LTV6}zp}-F#85 z9RvH4#ky-Y9YO`&?OmkN2QSCdL+?7J8}}bc6rZnk%Yk4|hx)%Ul%=0sK+j)>j+tp1 zhrAoZtAM>8cbg!7}M69~e znYhD(Iw7-423B$;V=O)7K0oeI%lX@kI)Tj<=mE&a@OJNSqj6IOB$URD&SHnt`pdak z{sCFR{na7h$o|0lE|98Wr82=66L5wv9dfsFoIzIY-ADoxL_B<34Mg80yar*O5eTQI zo>3!EgjWw}DZFJID@xm+6&Y$xM|$TD%{Wc_ z(4(}qq!E9<$^~ws54Eo=>8qo59J0RtdMeWJMt_j9(T#rj5>fhQtOn_#F|yoQ+&<6H zQC2eK6b_GLU5%54So>uxq~8JhH>Bl_6jF@LMQZIw%ijgzh;-JyZdR6--27x{`F)B7 zbW1N8B;&?NZXh{eG@@i-jE~{RD$`8|#3U*`%YHM0M7Q!ihB~SmVko!QH|o6RV{7go z4yMtDAWG5r2ijG6?;<8nRBjNL$eRgG+@L{(s|g^qLmWkxe7RXMCq9qz4sR%?9Ke^* zEa1kShCw)^qv@j4Z|+tQcFrWoT6TD@LsH7;^w7_4>Q>-2@(QAqdr8JL@uz-18Z>NB zAdmQQgGsEbh)v)vLG-5B0m}4?q^A-)sKZ?+jzRFCY-DpwnFq*LzLs=vvz2d|*gp6b zyo0EmnuE4Y{NUv{HmlOp;gcxwgBU@Ch%gylVuTZ%Y?y$*(AUjGMb|ATI6tB4tyt>#rhz?(DkNDW;TSieE& zs)>0U+#Smtt6UcUa9xz*PiSgCCXA7ZG4B1yKvTZ+E85M(ynQtq!F#bMykfG^E21rP z*dv2&BKR`c{urqtGF)S&Yc7`R3P1J%~XMEmjYv&#;`=jppH%C~d{qxO7J zR=&t~N8NcK2SmK4jYd>th?5BC%IU0_As&3?X4P$EShx7D=tjbQhR+kagmb$9z!A3&CepLV4jT%t4>j8Ass<&@iC8dlaqtWbr#8^HvQq^nHaNsju(?L-@wu zeQAG`@c6&Q-61UFj=e)EF3(b@_bmW4G`-%QhS!iM@SV`&}^X0Hz!E>54&&8I}n-VnE+Rc^39 zV%8*cz09QkRewDz>`ePF=Jg-BcTSQSK;+@Q(Nrt*dip37WO^?ZU~U9c`&l#+_zu=H z2ENvJVAf|c{)5A5C&z!_3ID2)5(9VkWL+jz>>8or4dr_TZ?yymp39oQ7)7zb@~5Xc zMv-q31zyk!D)Xmt^hWcU*@bT#iEA{%UJjxHaT8Uz;U%awi3fDOk)V`@tolAYc$NHN z9xeE*uK2)8T@1Ox&XE3bd!NjvI3in7*MBcxCvNoy@j1Ip=sn7-cF=t^DZSHC@5ALi zB6GeaR6NsrD2SC1L`>JLW|1jaHBuq!tqejKB->>sTQ0s1W{BWv^18Oc{?7%bdbmLr zA7vc_D_z`XyF59H0kUTI{Y2BfYonp{94^J#GFbeqG)6d{0js?uxjJjLd$$u3!8(k@ z_Gz?USOfg_Ulhtl`1Qrh_o7Dl?J}!LL4aS+F2sH2FAIgsGP`yTe1t|-I$qJ$+XEVM zr)|vHbRrs;E!R~%7jn2go7_QVI%I`#tA>ULr0)}bK-$)55nRC4V0O#=;Fsyn{|x%Ln|=_C8UOj zfMV2-JZ03+6G8Z*@a=!mQ~+DnODSL(&p7iPk^V0eABX6{?MNYCs<~Yf+ApE2OlSa3 zdI}w7edC=?()e!Pa?IkY(7G^Nz{D=D5??Wswoyo~V3tAV>~zpOn=kn`&d+jGcVMmM zsfGnV`dY*Zw85&;?E)jhrEVPI)BxeHSopSEjt0k)l&)n^cz6(DC@8#wMk#5itd4tM zgM&M@+4dEx%~rIav+BbdI=KHK9`;2?Dv|11&r>U#Q+2)=mw^h3C_H-Cl7cRt6(j}>U}+o88FBry#P zx5;X&q8KS7h`hWhSbCdqkUtW{lzDbiG-k8^9t7D8e z8wvoOS)?q~P{lrXJtAS1g{)^A7qMyM2K@D;E9c$Ri)-6wGZQK(jsOi6JRzvidsu)@ z554$dQ0a&H>C`b;>h<*-M?oAb-8VWRYI923=h%BOdnJ^6es4gz-`=2Td;w*)J(Og+ zXq?)1tM@MPe6+Leq0Z95pV4VM0hh$Gsx-qTG`B8~OU^QF`3pn)amjA4E484BO_(a? zD^&>}5lvWaZ;jb6<<<7V^$PhP%`(%waeE7cS+ZB#pL&IqURs4g<3-snlEHiQ=8Q=6 zTxlSENca8vmyv!%{sqv4m?#~S4PDB9uh(qzLy5*oMgP!F8^mIT{UwXMOU59ix?29$+TPtt) zIPy}I&!D9oko>HkmHVL|AAIowTdE0Rl(BaY2+5TH_(m-+-@S|4kp~60%6(YhFdp$| z8|cb@@rX-q=@gHs=U+QTqmE!O6C79~v5p-r1o-tWZ@h~0Y#ZJc`?ZLKqx5|3X!Ej# zjGkQ^$Jt#Pc<8u_W6C20e6+un=(XR+<=IF;P8BR@eSe*O_wP6C?WlI9^)FR!y-vdMobyX)y{yW4rvGZ*W6rtkw@RLgb)4wwenGTZtQixB zjLqklh%FOPt}oD~16`d&z`0Ms@opx8`;LeAs~FyM z+Iv?02;QCHM^+3kvF?rV+{(d$m2~#BozbSPUES|22Ss+X_ZjTP{A8)1?nRlbxVzVY zQ#RJf!swHHjoFd@rC!411O4vY7X|6(7n8ZbN4_^hKg)U3NAGcF3!$XA#7_#vF9ol% zjz^$ssjyjhJRYn`92Nyd?<0A&t(U0|zkRWDVeg1@DXy?9dTLDdBGRKyLHYXDe;Yrq z;^S#IB!)#(%Q&~OF&eK}Yt`M)cl@NzZM~U{SL~kow?wask7o|A_&B+dsJzx=lzx%3 zNA#RAjMB#^j}ScYC0y~zw4)NY@-w5NV)wLO6}ywalWfz9lfR6dJ-TG(&!f&&oI23B zCg%+K&auynDOv?Hf;4M-NM`WrzxE_bP74Rr+fVMxxIcenl~h!3s! z*t+Kup-$SwW#pfJYwn{A@R_(oad|*g9wMmxC9XC>@3%l#w1z1YZ8N(>AQ!d-=OvR? zPLG22rM=AQrtpD|&&$H2IMg)mOemG{z-ggB3_Dc=8HE?boktcz({OXuKw%hh3Y_tx zEF!p%EE2A%>c=520zzp#y-?EQ_IJc?OD!*UL*r#|j4KSqD|RHeT_GowTp7M9{KKo3 z=P=*2W~pYSRPpzyJ-oEFKJUQVjQk5LjA6p3!>PSBQ$|Of*#cNO+f+YeB|mW*cG2dy zdeQzackZ=&(RSNiRr?0KL!!>;ezFIq@B-(^e@dpG)yR0*=!*-HYPEEb3Ud<;J+d+^ zY=0rAzrxw!)E70@9El$Wk|-UI+B-N~)q%|umH4Db0*l)*4nUk5gd4MvUr~G5iS$2# zu2xh#2ov2$`aH=OJN-YROsSOle5{Hxj^4>VjumF96Yyy5A!#k#OhrNw>C;n&B8NRI zsATNM>{WtK&Vg)>rxyrSvLuh$#}NCDh)OjVyA#Htanhp;t1Gr8w|bLd%N)wQvr?+# zP$A(jDC5I!nYer=hw2xj&t6!c4Se!GH0M3gUq%NQk?MC*nDdf}Eg)}B*f)xAOb z;)3EH1?~r@L0o$UotrDS$Phsya@}rrUmc(#cJ9wfHJe`s6too-3@xZEC`jJU(4X5- zP)mV|H&^!ae@o@J zxss?`vN)sM>;{Lb=&ThBNM+1q#!FV=6M;e$^EUS^HZPVpwyrSpE&H7*g`_|3mR$=& z2K=1ik1xfK92O?{S*rLs;nXj|&(r>iT>vksZ zC~ws0LEZc5?na9Xzx)g&MV%`KeDivNh3DBT< zV|GNS{fQ}eq%jkaq|Pz!aev<1A$~*Dm-qR}G?Lj*(w9D|*%`=ZJ! zFfck|&8x&@9arU?(-yY=)VqK34o=2wcFq=${0*Nn zYvkJd~k3b@<*6?{*`fPMy;w+1$#ZxZ7MyKCH?j3wfsa zG96mH4P>-(4V>8DpV}=}QFLfQTSv#_9b%n#YyCj%oXmLA)5^mmk;lPlPqiJ^3_ zJOQ+tpozKX06yrKK%cA7$d}OXlYNvKNCHpX^pvam&Fqu?uloL_8WSLe6s59 zr3v@)$M<%)@9hYHssAyFQK#r<|8{smbJ1gW^^*Ivc-nOA;rzu@p!YxmVB(sc%avuW|GGf&Y5c6Et@H8ETWX9t!?Nk4!c1?il&4SZUQY1A=^* zK!Q`Sb46{E*}!)F&KVeUfg;+hz#v}LYQ}C1^mnRgW52@-u=|TDfLN}|jy4w^dpFSV zFP=W+3R11ZiV8`II;U5gx5-W~I`#p7Rp&Ps{fI~T*Ie`iKanzxJn~b)&$zhLdw@uG zk@=UP_@b$I_B|T1>INzHPXFxNhf8B0$&byU+vgR>xv`+`Kjdo#7e7sq2YV2p-Afkv z7qz1d1vXxu{+tx5csX%{@LM!JyAt&rt5}ve7G1tkETK@*c(T+kl|{pX=JN!M0;_(H zRN|aL$>iFYgHgCTaU5&i7m_t<-^Ns-sFKH+^L?7>617JZlL@jNFW=Ker|Gw!HUii9 zn00H@_^5U3>X>uaYDuteZsb2Z*oRS;Aq*0Flixb*kS|IPFBtdZ!U4VT#@98*(sxM( zR{dq5F>D>CZ?v(UT>Na-ALVU9Gb7kNk%L*i0dz2+pL@l}0Vmc?mX4dT2}fPi1Cof) zfve8=J#6$btL$D2Cc44XjL|lCS=~QcFx!0I2tf*$D6~hLhqcLbJUv_R#Tn*vN06nQ zn^C*&i2h-fre^hJ)H#S%m&BlG`gWAJfJtq$+V#P&ux$6NCS2(SxfL*bT2>sZXi2{4 zO=aem6*2DfKne6U#XxV>T`Q)RKOoCv3EXRvK%366V)$k0F@h-eliASg^o8=)TyzUR z^3U5QdF`T~@D6f+EU4!74qo+8<)}0Chf*Sa$PeVlIlnjx4=jz^`@Ff@>>(3+7ZohN zRJxQty<$Fo@bu6aKkfsM?e1_txe`jteGEHt13MS~*FNfGC~6CxF!m41=JVK_Ox zh=+L1mWW-of~B~KeM{p7>E3cIDLc|mdygML8?~B~^Uq|_Ggk9OKwtZF`{lB~l)b?X zCigBNSN+>Fu1rtjxCc(14NX4gg7j%CrEolbQAxGT<*o$t(Te11W_3KpYyLtG&hu*` z=yY|py`{R03nfKf$DM8$IYZb9bk0R~A$OLnf*PMCy?LRxD%Q;?tXMm3cEqV#5piy5 zL{yFsTetqbY&GXnakVJ_$1W%3jo~NciO@QMgKdWAb=aSm?Z9sv0?5hVjhAh^D1CGH zE*JP`;m4ZZ>l#nbEU8Xcw^di{o_&-uvoXF#QYLZ^qMwgUWY?U-4p1TME@hGD!aRJ_RQ0J%~Srr-09r7!H6f_CHcv z_w8JcpnHT$I6U~2(97({qP>gKg^ki!wNo5-PO7#C(w=%T^5>iI7l(-ZE-Q1>hsg7Y zU43`lspg=`s?w;PtgUu_RBBJ3i(mLQuoAbc9t~Sd&%iZ4RVSp0TwV5A%sGow$5GzmNRh1)=Td|@(*h<9 z4V80~5610L*cR0bb)AGWJvX^)N6EBCd@P&X*_Yv6A}+k{beJ;cTwTg6r!*{Q8P~s^ ze90MgchsROW;fO%s&c5xsa`1O9zQ|;^7Rq>+6S3bMeVB=#_ZSFINV&dfPQr}S82>l zbCukh0XS9jD(60Xy&_=#82w3)=BM?-tbB2j4S4U$oa%nER{WBPgw*tfNSgX09-XR% z!&ViRhO+si&Yh)r4**zz?MT3eEClUzKNzXK+l-$u`3GHOzOxiC7v$tkzNYiPs}{y< zu6>ZI=UGb)aE<}aQQ*J;N3McRXH)|{uJ6I4Iv=;v^@wxrg4UiYuR)F=CG7MFJ5!2d z&EZn%GnaXU?Zd?3aG4we_3zrBMs~P{g*6@(ZQB*gI>shB9GQ3=)+Y+>F5(s%C6d4fdaerz+dbf`7HNu&yMeqyYV`BT zBEdOIK%ZK~cM1)w;FI}=NNFLG5I1IjD#X<-;fmh$rHbBi#l%%$!Wmv1t~kHgsuOR6 zGra+{_x33_MLHc&t`ohIPh!Pq2tW{qHtcA_iup&R?&=1K#(9uOX|H}ZLsj~@7?!{s zscu00uQ;?w#DDY8(E?6CcjfdDziAm=sF7bz?L{PiTa>xI{Z@ISd*-2C5U|w^;Z!IT zP%7LUR@1BDTq^aZi8O%k<<#&Yu^P;n>RPbb#95dpCXOc($qeJ_26xgW;;aV-NZCuL z9^Sb*@<{Lvq7(Od7YHoE%b=g0z|vv}c?0<)aUo}+_?_wfq<_^QOt>M8=2W+>FfKgo zy-3BzX#klPKrKEjtdnkw!LQuSbo;|n|c&&OHkcA?3%>W_5^a617554;kixF}}oU0fD zaugg}|LB5}2hzORQ%Q5egM~^gw`^L5HV_3cpwJhSF<oAfgn9oTj}D@RAk}wJ9y_FsBR{I_m9*(V9^Y$^~@xsD6Jn`|A>!DF;c zeO=w6sd!;Kycg-uz1)3@X$0P~nyLlx&caoNp^&#rNSy2^hl5`Tadf~t zy75OSU0ZQh!&$-?^|uRO?2)xEE`N$uoL|D_JyLWyF6s08S@pl*#e14RF^F9f6%T%W zFJTQ{@$UCC>=mhMK=ylG`5@G(c8<#(FV7sTM0wzTGhXK3k)a9Hn2?n5vNA1Z9^`lMdaxDnZTO%fVc3P$=^;lVT5hH$v}i*- zJz&p|F*3(yYs|3m8Puz69JBxKzS2V~P2#p>T*$i7F5VWl_R?`0ORdD(X)cXb{5{b> zTsxh~mS^9J-M=#?z&Bg_!%uO=?XxxHoDu)eYWS zI6|3yz9?1q6ukY)j7XmtDj2GO3H>JPI&!bB$vr}H7v|(XE}L7vN$wPQaTk0)BT>B5 zSZMX7i#N4BJKyQ-PY~z#U|?k!SFgtIAYrF)PQrOY9XR$K`kRE*)`QQ6i&Hkg=@K?VD?m6M;%yo6L_c{ z`~z#zZ5Wti=`iNpSyo*;Pom9bLj~cEz^ta;V0P3BF>$h zh|&R6k5fswVue+g;(?QTW6sFeLCT5AbExjbg|J_On;lZ3UyRs zd54oK^*Gd1@lK+PeR%jqddsRlAAI{4Fe+ZL>OP|s5PaJ}fVBY$pBKJ0Alzk~$ZT*PwWvr{oGKY*7YIvAHWn74*ve%kTp7kqK0(X^4 zA=OH(V|YRg2_HXj*x6S7eUi(EmPh5$!=g1^!G={Q>tNMRT*|WInl2hMTLjyMrE;d9 zKOFPH;5rC_)Gf)v;tkOzE8*jzpVqU7Sf>^O@3;17kLjxP*o;qMXzymk)A)I{Q@fmH zExH8GTc!-xwQhZ~Mj3Du@97aCblS=S`*88C27}&PM^V3jIGgGQLLb=JE9KW8<$B_Z z@Eu3$B~OjmcNT|VR737QEm~Os-RWbA-L>^GmA^U+ycoSOd{OOOn=x2Ur9<@V&U=ya z(;*Ye%ep|4Yi>3iA$0I2(M>7&9|tV?G?iz7hhvnu5cE$*q8=$$d}D$8d&r+%j}P?g zjRoQFlg+)GhH|UW@8(jsY!%n}Rp3|3EpM{9F|EQMU-G@-I5^iT0^R=l0M>?aam4I> zVLTpOY05lbmy~3QN#sbI^`|~1bjqr~9KMe_MF&fF5dif+mSK=S{dnHTTN8@zJQd!u zPwy>x%Zk3}LN2FIH_6Q17UJ0;AOVj`(Ld#jXz623eb4hAw@-=NHx|e3v6vH=v(DNW zvhMnK`ED0IB>C-OEWOMrn!~d!zDxvgmS1v|>^vI#iR4V}!AWA)hl{34f_Skf!pj8T z)$+brj0f3Bke=zfM?|~e4Nja!x8jo5=`%`xasbxZo%#XNLwoSeO?(e$?sOT|&d`A* z#49@R^WOUKUgXV$qS+^kX*ty514w8O@#FjZ1^m^#3;1W~NoQV#jIiK4!}>8kyCch} ze?D~e={Bd&Po>nJ(2TWYnJrm9CQIuJyrpUx$4@W+oV^^dC`i| z{SrsX#Vd%mf!1NeHu4-LQt1LW>P#(-+IO(;L8@7ud@b7WR}MOpe^Jg(E!z-n>gdYN z7{sGQD_%+bn=%K%|Iv!}Nkzbx{0KgJp#ZqR*?s&9&Nz~RRY3`6G5VYC-_9qu|3L87 zA58lAl5Bjtif?PYWAZu8DG_n9z`jk(M4uaOc zM{+FvLt>6Uw^DyKCB7?J(>)*J|LUky9(Qgpr2~mxRdw$sZ|Qg==1i9%Q$Vf@xq6nl zWJ^m1&+fo@#ngclCrhA%Os&m$nneBkCT?+0sN(of#;H$Ip`+cwvQFJd;l1?GX}q|{ z9Y^Pf3meT7TwPC^;OerD!^#`=Bs_{8atW!)D|}Frym+@!B4+<1=*(TGN|kKIXoyIg zK7LukV~q978Dq5Cjp7*mjqWY9j4jjHaaikpq<^#zXny`(`0{~Ve1{1M4}7RG`}Htb z|MXHKYrs2W?M({V$(N$eA)9!Tz3Rt%PlH$E@1P@Qy&sQu7pv|ALAabLTk)!uO7jv= z4|yoow5=-_Nma0sp|rZ;uE*(-Z4+q)y|U&x$;KA zYdLwX`VJBSDk7j%ygKP(z>4yG(b3al>QIn;tKrN>_oD%O@zL-?5$#?5vE))Y71aCh`Sr@S7yrA|Yt?;@jLB(NY-3s( zU|MN(U+S+dGZ4qF6Yf(#YKbkrI?Aw{3!XHL=G{1x6l!pMPnG<`cs zZhzoxT`2g}aepmoYrJ(NW?jh{cp5}6$ZB~A&&8w=L8?s)>4~hGL(0`1IT3O5RA2t& zU(Em0e=+~h{>A+B{3D(^^V2T~*RtwNQKv3RV^|wQv13m2Bh|VH&N<3ave*) zx7{JPsu0?*9s0#h(%0h}qB(t?{MY^9ZC$MJ+Q|j>^j`zXqwY0>)j9U4lU%?dea`e> z=T$MKPlUUXs~&Y1lZ~YSPlN^h**Si?b)!45QiNR{?Hl{8LHyo9G{+QUr|nnHkLL{R zy&#@0_dr?u*#g?^j4^Rf?u1~nj8tD;NJPb>pl`8wK`Xdy)2e3qj|C(-YJVWb-L-d% zh}UNXM%0`YZqMtVAb%B z0{3SGg;UpD&TVEQklf(ZoilQcci3y6zai$WIio`H~lS2gwghzOjne zE1A#9F#z+MDvQ@u&Rw!iWMbU{0o#6dBQH4m{Q!XQiw{dVyMDDoKfh66wtpi#DLBiL z!*J85kG@{~eD3#HmSFZTuy$y}ifSVKK4$VtYJC%_5`K9$d6C!HwrTL#JF%XYffSUZ+9E0Q!~xM;ZZyF@RO`M4xK6x zB|5<0(Gsl~#2yDhmUSO{g7vNh&``WKu_$c6M$G8pxE_UFo|A|ah3Fq{>6=|3LGnIF z&+N_#PrM7XN?n|~BG|R+Z;H(CZNVaTqgqr?Z{#Q^>}&x}a&fKg$!b+^VIZI?q2=BsER^9uMiYAo)rZ2o{ z4g;Tew{e2h3Aq8<^iT%>Q2ZEPFLj_4Sak%f2GJ|y!cMnTdw;7=4uD9tADg6uI!<-m z{*2K{1ap%39<9rrdM~=y_rK+b>T#Bt&`%r2Ov#A_yG4h%ekCMKT)0{5LG%nD9LB= zK?{NKdHHoqX`uBNzMk`O6{q}*B5U1=bHsmdFd%(Vk~QmIItrsORq#nxuNWUt5N`)w zyz>k|!sqcG+Y$+2=Deog=uolsM-OcFi(uD;?QY)jaElMEAlHkTN~DmxC{3@#X`3bA zvB03X7%a)=2z9`1%pct5K$zA-qk%;e*BY@NBh(K$J zX7D@Uf8c;)2GFX+m}nW-artBZEqB6cj9p)TB)>};9jS5;(K#?sCgVTct#G`L3~~uh zV8%r zdkwr_l!e0WidxQ;6fY=oRKIL1ELeOe+0ia%^NgCik{|cFI^w04ohk8BfxUnYHzL8nKyj&ay9B!>zi@-5F9xCe~f(q4qHv?5pe*moTygiF?hLz>S#j!vF&JDex!^VsZIpVaGC9I-+tu1rlAt17r$xIrcUky2t7wY~0xaQ`)~jDrr@W>0({tQAgfdLaBH2^-`W22 zWFuD=r~7?xUF;U0k#8UR_V8`Yz};M=5L>i!S!FU}w{Y5ifR;0AhyJ_tCh`4F$WT8+ zzG3{|bT_cq6%Sj+C>|E}Gk8$@nohf7V<(>k4a7cS4?hY<9(TWgqGIH6kODrUn8nWY zNAnt;QmzF9)Ca)Y7PY6hyN{kg>%2S3HU)Hgdw#*=70PzEK%vCjbRfC~`>8t9vvpaPn3R+8 zQ9JbKS1Wu(qWUq~Q!e()2k^n*U^Uq$@D&3eY>ER-0d%G_I5P!L0yxm$?vB-5RSI5Z z9$)2-w_JYm(_5EhAyj!#J9PIC4gMG{S^SO6#a}Lb*B{>*J`<4;^iB9)L3~j&3W!<% zM-INe4o-rkjeNmY$b$9F=0m>F_{Q_a9*F_@(>H?Gb3(L|!!qMy)T46nZ-Jj%Bkrdh zmYV)(7Z^IZcGt$%Rq9{K>1P9++|l}^TX~8v-~2gr?%0LIseL^XrTIWqWTIzI*0>lo#8~> z<+&IdY{p4;LXM!=3>#!7<*kbjG>%%Ia|Z%f?s)dc1i&3ozMYmQ-@cnKVb074>g-^i zFLE76fe12RfMwxYazMBix$_1YeC3S3V#Y)*b$sb~Q+=2>jP~c(T)tO&#O$`Ep^>6$ z#J4i26JJ2`mIh(D4CZgNmocxp2rpSx3vmjYW6hQQ1t?taqqgu;CNBiSvLJI~V|Z?5 z$#`o<;{b~~NE~q(D_g6bsy2kPHLFD77n;j!zO}|~=`8maD<5xgr=FZo zuZFQSmjQ17{wn|F_$zeTgZy^Uj5hK5wNLCJ+faQy(72FhxH?9RCBJ0G;xP70)G0dZ z3JMbV5?VeAyJy=r>>f6rh~4uCp0Rt_|0C#hZ@zPPj&>zpoXaPRGttSY7`XyvrP%XJv z)ypSh|0(pg^nBLmGV@NJ=`0b57t0G)kSpu>rq$bD5V=(Tw!yQ>=E~Jep7@Mop}$pE ze45x?{&qb5L<2RnmMT5)Zb!;K4=s;Zyff)9#ID5bH-?;$_>Un6C6+9f9uPVp9hm>b z9_-`!Qc!l8R(z7UUxG}U;^~PJ2jOSk<=&FbM<%OIR;S}Iz=GEM4O~*7x?-!9x`Hnf z6w`Vipvlq@lXojMn$$c(B#(jq6ShMC>kR!{-&6Yk`daMX3AbbSu00{wW>wh|#QgQ_ zkGtT5lBF`qD$jG2sX08qjWf_1UZP$(0AVKkz23(##t?4WOdwaTdE8fIUo9D-(;J-J zFJGZz>22pg|i@(y+rU` zjXTS(U&xctx7yyToCQ&;%Ra@u;9fFNc`K3RM$35mHn6+Py6a}xBUZ7281u7g66ovg z?$6pgVb-coDl@JSpgOU5WdR{4w^xgUK>{7Msh@1Q zn5$F2oI!Umm1YNB;>Bvtad75K(}Gm*w~R*IjPlMG?suJBNveg2~O+es}-C07n^YcaP;k4>P+8>_nF3 z$Xi6@(Efh;y>v0J{7pgmcMx}9R$eA!m$DD&HoC=vPi?M-auJo?jvzSis*Q2y+IjBf zLZF(K)aRioJzGm&X^p<}KF^bhqumpl(q?buzKIoj#aM~jNw2&geZ`gc=QNcJm{{K_|gBf@Ju0ipc6b_VodpFhiLCyQ^;56 z_A+BWa$ZA@Zb=?(bgz*oIdf3KPGh;_?oyH=J5q85j$bf1SJb);cSHzUSAjv&6jqisJbf`rB~uzn0&i zCGHH^w5?Zxpawq}7h`j>!Z9;Wj)(pUh9;enMT8hCvE~(m2y;jSV>4s1aC!un7#tbh z#reT2Ca!h&asvQ2ORNiWmUp-wNi;T*#_Ahyf3WrGY-!)#Vbw#{W8UD5{AznywY@s- z#QPV2B?ba~X7`OxzM{TOY{wNb*bG zagz5@>@i_MLXN&Ud~7J#4?amdFnk6!_OxtueV?Ng~M5MC_S9<$zvU^>8Ga()Km zl*;7&j^zD~!JnRmqTtCUN;w~$Ume#?6)=GU6|z3zpVhK}^JCr9RF9Y@yI*^KAZ z=6wVL6^mwv!zT9(m_@=>V$KZVFROm5wsVd)v&$VwS-;N2>s{|#iihRhz2$ACKOo*m-6Se+ZQiUE{pa<0vF+!vghsnul zUsm0f44`X*sXy(bocAi%pN(_*9cCa)Ld$FL0RR|SBm)5nCm$UkEdRA}}yBkmK=at`)WIMX}aLy;W%yj3|6Pi0T{Pf(bw9F5c@brU3;NCF%r1 zGCLvj2oJsmRc*~2cu!=o0Ib&77GhdzIC;9O33scYcGsrrk#A^;tE5ZRsvENzA3={p z1%8}nb*W5B*Y%@7*cek3?!LwKkUza3z8ko4!KdUHY_E!nG33hef0?%sAo+UVP zJtbcLs?ATdyK0`qr^{`0`je4`p?C`pj06W{3ghq58m;Q_UrCdn%s(w;T*qnPwFRN> z&&%}3_s|?ez6Pt!b7^jPiFC00=OLqSiPMb+J$?%sI_InQ#}w3de>n(f!`-Ute3Ld=B8A4tJVRb||! z=r3?rKnK|Ke=I)loXZMQ0J(7YmXHym*JBEtIA4-Wbpp8{L!!E?NbEdsQ4zJEWkprz z>L&DyN6f22!t;(xhdTL{H3eMVM94c`)8Ew1A1NX))#LB6#IoZ!G1&1c;yxrVE3u2~ zhsYbGcgC!mzNwR+gpAkSpjqxZhSv_xfVqNvi;hcJ#WUaM6ZcFsjgn-tLdP3RbbhhB zyP`x3#Xs09!qH_RlZ%46=|yIQHDT^F*bqW8$hlX{<*J}23=}DFk`E=E&{Sx*)i@0INBk?vX-1C<`?Q7 z;l1Aa=Bi;_{!ax3R3I>A+FHMHjetAjZ^Ub!>Z{MFeM%ezn|9@4-**J3|Nl*=wk03B zj)Gqbs}x7U;o>NGeTk;DB3uKDt4Ms$Ui)_JXd_QFN1z=lctfBb)B3N4$ zKAk_#7lLOQUbbAGX1rW$!Cjhm=ZW`cOh6SfPp&mC?&nj(*~qW}IMF)Xj~<}_3V^V+ zr~r^gUv>vq!{9!|t^Zl|y&7OsW`HcpyYSlk^7|(J%V>JZE_Z-0NQ?;?V9(qE64#ES zF$M@nT}_AV&wivj2p7dq{8{{5$o&w!#fdRaUo-t&E?S(79A-``Vw~cZglSJ7#UDq_ zF47Vgs%36Wf#SiSCbY-*p^Cj+T%fZ0hm0a3n5Z}+VmDhrD(f2^?a>x2Aj3yOc*f3O znBlkELuQ2pU1wzy&JY%64Wq7T(h}zhQk!}~Ta!OBDr{a*@Usfb%11Ul8P#zZ zTcN+RkU8(MgI8Wa*EB#E$7%=X?9BccaPt+xLX2$> z_$6>->oV=;9t3C=wblfIoeOJWFV~_a$`0^~uz4;e zuPsum72B2BYH|@enGY?|gU*CR2-*YSpZA9)%9*!@$pjrH%Qvx87&uTU60mpQCL;=& z-PKD=2GmYHW0Q7dasRcFf_^DYOS9^&PGl9qE1IEco$Dx6a1@y*R~C?~w{i3m*#!(_ zcBLaM7)&pTVFg#Glx8~D1C|si;rxMAWdGCIzPvyX|IX@Fv-_dQ z>*@PC_mcuek)hATEik=G;%j|q>+<}dD{p7|JI~!{db?nE9gf0oJnxaL-agZN*5


    kyo!R#!My#3e%0Npvseb3<6tuhhBL(aS>q|CLdOpNx`K5mwziI0(2&qeah9d5q` zFDFaB9JX{$zjywA?P>1$yTnY)=*GU+enHFwoWpX>7qAX!IOMaTnbY@RPdTP{4FrDh zyfXKk*weSApZ-?=P#;MQ98qzy;_p2~X5`pk_)}XW)*jat z3j54{t?;o9V`F(EPBf!PUhE}rP|3;&g`9!p)Ob1flEZYCf_(0JqFfaY9U@AP>=5fE zu!%4Ij(saC`|S8c{ipOXAvfNydtR&?YaZYb`!hNC?>Kg;%?`;g?_Trb~bj>hb@ zcSGtpSBtViTPE%#A?xUF#D=U7;ZyTGAuPuiaomQp5R5y%f8@jGN-N^GSPGvi+`CF@E9o^@)5=*>? zL@v8sHGGez1hvy?oDjNM z-!vxza&+pmZ|mWn5LR+VCwZA8Q+uVG5$O>w-8;#;xY(b*kE-VFlrFpDOUZ=#oKu9& zubte>ny@u?p!-~6brnb1%{OX1M2euciB|X_A0XQvwuVg5*0KX?^m~Qhk}@A-%--}t z5Bo=*bptf?wOZmGWHX^d1<7v#(P<*nZUdw)KUMSxqiiKv(9{jx4Kl)B%R=Uz^>j8i z$`?5s)CG>|V>~)XkdcsD_7yT<>-;>w6#BUr@Zo9_VWK;O=CT&PKQCle=XVw7E}Zw9 z3nXH979Y>U5Yvm|t@O##AC4>74nQ`DJ zlZf-#^Cq)zZ`}P3%Q-JGntsBDkgUA?-pEdhzZeJO2N%!1L^r#db&d2V-gFq30=JAb zwwk?OwvDFp#!-{<=bRF63YepBLN+g>k)W|P__AFs)wwP8tYBx@-`Lt@2Yxb+7V?*w z`31(dmu&>^oc7sdUaCEwKRMniqK?bozS}+u!GCf4gXGj3c|*bTJL6}&@-J>*pz_1x zC-T_8y!|e@?ROkH|9Niv?f>)h59K1#9PF;$CL#NOX#R;8_Aeg)Ac@%dgY%Ep`(NIE z?4PvX_5VTpRsW=Y;*b7|$ItooKbil)zr6iHzT$6H+ytMc42`a4WZl0rn?dTD{z ze&e5k_yI)6vxI;1@~6hWQM0}ERROvTK;zQyt*<$-W_@j!^_7zlD}Sl1uLr)pz6!kA zPvYN!HNyuSDr}{rx?x?4JcVc9EcK(}IuekhSSziGX{ELGTItkPTIuxFTInT?TIrQr zwbE#-R=O~EE2?}9%Nxr#6Vg#OnH;4dAC9Cx-C9wmev*^<@e|}iU0IP*zK608NhODq zQO1+K{$q)zvqI;+a}U&I^CmmNa-3NY#GdN+m99OOSO<23&^zz>|95qAb1_%NlKme=;3OF9;;&ix;!m)1{(dxe@fR+cgTEeX z+qeDo2f(l%?%s*6o_tO8mDvI3j2AmP)M$@H3!IhjJ$fZX*v8ILbFrcrZvLN9C=q35 zpCcpGElcRq9fuqiW(TSW)f)>J5+t{GQYiP$62+N#4|Bg_OZF{7?FONqCu-~0s4ZuI z#J##1`>EVP{NHmM)Luzq_ubW47O5_f&_&dYv98zY|u6h1@CQXJ^ z#}3toK0#oY{vgeX6)tIp8E)rR`xEc>oLNy!f!fb=i}PoPRf*F^lk%JrgEjQ)%ka0;z#8SrUDo60@eD`_X|AfFY$x=U84F!f6e?Z zR5VU%umUHm?+$^#ZZ59}b#w!fefb^giPK_ZQIYoe&3oaAq_)bB)%Qi(@ad(5m+HHf zXj!v+rGEmxp|%*w+nghojGX*IMDizeC^HmG28ZDG&i+QM!4C1Eo#G+Yf~Nn-!lh$BZ;jp#s>$)vq9mZPk}-Y~>R= zRxIb{sNbHL z^VRHHOIkCTl`2zSJ2NGQf%>voWy))3rZSz8YV%a4ymn^RWxo87l{fx`ymA=(1}|!A zw`Ly1?O&xx>@QH#St~2`cloW*pq!5=LmxT$#)8lc9AydmV0lA48pyt17kRHp&FQXJ zyspJRl0KM$7jGnS)Br6W=A8>ZhCWH`CFP%C272?%O@?TOu=Z&ZYn&s}7)9yDx;3j< zuXujWiE`~A6o_^R27zL4H#P2D2WeI`MxSmFY|2r!yL3cI;1GN@aL<-@95|xUEhvRa>RcMPCo$V}u&4D;Jza=CNzETn1Nhycn}P9epS0w^(It>;VIzNPw}w*rB{V}&7Tn~nFDc+}xMYAMn*loK@_Vr_ zNkBB}_6ya7ga_y=Lt_<4Q29qsr~zxq%}lk5+NJp0sAHCxy?t8zeo~45bpBbO)@mf9>AvVrK*<$JW|71{OUSwatQk7N z&?ZU6al05Nz`>c3FoG*e3P_oyF0$$!VK~=PPHxNDA%8Y{=M?2Y;EGLJ?{Nh{V$l8@ z=xOhn1Dsl^6P9D>#y;nKHGh?VMI`lcoIzID9Qqb-N@*>e2tFGcwNlob*~jr9%gvl4 zgKbH*1VoSVw9A+6kPrjWUbO_57yINF9I;dg#TSxK&MSR=~H5SgsXQ~0r`jy*tc ztKI#K&Ls=lvKuHBwk}{hegF=fneSS$(b@>ccL(9-T%$OrvYSR8cIAO1^or-^fN|Tn zeN>eE#FdEda_1GZqXM~_q_=>&NuG3BD2jtx|0)?nktChNrDVOQ74aw7%AXLovb-Fv z%dDpu`=_7Eq4CWABXj-<2~)+D%<2hvC-RSU*0Y-s{FbR!sg_p zX-~jzA0t+;fn6lYu^Uz-A;lOb2xCYEUL;-q*=6phP4X$SQhzbvcH@0YV0wrv@UUd% z+EDm{>rWFnR;0t)*mTHR$f8J#%cMo&J@0_A?j2WEvU7o-TnbSJn%BZ+dV@#=dwE8X zIu#h7>BWQl)c{7hz0eYW<1^KhL`?Chv+;myg&Vs3BW!FD775@(6$iBVR4KwLot263 zqm+5W{H||i-o)Nd&0BkP7spwFu>V8d>?KoE>Phjy)jF^ILWfN|Ngq=RR*)-?F%g^b~i zFjmAFR696lQD!__6`p4MeP$87)3seL1A{*>%7%y++ARBi>jB8a?)Rh)V2(JULG+gx=t@3?}@ELe3Fz2owiKpzSe{ zM=O8vkUHdSxCVxiBQLA<=@9#N5&RAc_OV(S?VM9}^4p54!N`4T$*Mv^Y>a-Qu;c|& zIN$z2kjVaNmAar!Vc41Z!obrwm&GKH3lRBgCs&JAoHsbSuPrWQQWdpB#`({>nKJc| zz`HKIIdb+#epPFoS;CaqHa4vlECJ%6zZT#=Rg*Ye43@Qj!z60;kOJCDjo+_I0#b2#!V+oHf z4*j#bvyvjteTWk`j!DrL`%kBO6#k+#VCjnqUcu5kwGqqq7?vIlL^Yj7XikHLMxR=WtYmL*DTT0>~CN{*f z?)-@d7d{GHzku3n&6CvgSe~VfLW+|V8^B1v(T%F*@__jD{mWR%LS!mZ{X#yMki^GI zaqFxOm#DTVgu92PCYslO&`#}<0mwljf+GkafT$gowsZ+4>>IH?i`}e{EENA3eJyK3 zTJ|MerU!LM*W56~;xf?aNUdr(GTk;DY#CnGHtX5h&jLJfU50h1>7I+&?>`)ZC82!E7QOJz+8XPhry$8!vnLKe^ z9PTwTWQ2Q(uPAON?XV!4*9_1rzR~j1rjVnDtUD6?l*zRf;c;^!Q%3ygyq$ z6)-Xd-RRKSXitj8o&b4 zK8Xg(chbb0V`JBk@Gp#RC-^c7oX#3Xmw6S}9$Il`K4I-z;$-N1Dr?e_5)YI8f_JS^ zd^e=NOB67r`}B$zzR#xr1#J3vyEgssknPH*zi+!wTU!>E3yyF{aPOx3j26%zru$aa z{ag{Hbsg7aMDPziXl&8e>i(+OH^ZX4V+V*8DI023=5t<&UDq)z%3X#+!>=bcM_FT7 zE>n^2vBg9|Guk8Fn!63tt?_VvxMF)hZ5h^3K7HM=D=z!hu=yiT3Y}P_KXKtn!-rmR z*;Ucdi5Qi4=Q0wp-=_4Db4&DwVbM9WrF7^-`HWAbbm&A7vOD)i6j3s`WTX`E?xpDb zpu!iamV56BG@|fGTRXoC7EC8ZF5oZ0NpGYl5(8Y_lfr1Ur6(}m&0UDz#&8(D*sw-?MyAcOon`>8LvA@;iFlE*4JGXoj>%~S4D?~Dkk^Rk`ndK5o>;r zp6FlxFfG}I6z6RI=nXEAuDC38VpWfvuTPxZM}U@mUMd($Nwj0iL(8i{>|d3$O3vnk z@k|xon)OcPmH=Fezi?x!NHlL8746?Wjuu0#+0KHYiiM)CKWvS7`;YlZ1bd`Dmp@5Zi1};i5#mhP*e7=(?y=_?*?4t)8eedc3=H6heR*=|UQ2!n+;uA=u1dQF z@Lb+yZ;caPQ*Mx%Cy0}owGqD?nD4u|+AMZdoI^L6wP~rBjNbWD9&wSw;b9|O&S?Rq zvivGDRe5Tv5>o};exnM+WbR`Nv^*_&4hgY?dD^lul0A_>!RGuDKlmo_Z+|q~9Z-i! zWS2<~54kspxm$8K@CmD`t5`Mjoab5lN&k0AAD&5%hv9dMm=#=O3wp`CucVBY)TGeb zvD)Z7ZN)}Tw={CTF3#r?7-TFeBd>_$BSz=V%jaSkjmf9PdP+F2kZn%sO$vIiKIYiI zWc<;WkD`Oi^4xx0C*}Uav-{aJd0okC4uNsrn5D0f(WdCi-RUbe9`rS}#U}2pOJA=Y zLSMCbeFdL7guX(V7{9x7=<9gFW}&Yq_&k)?70=LI`uYka?WC_z#aYnT5z>&h_AEtU z$IFX3S17D!(3}K`X^Cc;lO>BhI`c!-*q92T^{4R6V0@8KT5p~iIypjWm9y^>QWL*p zr60r0vUS&^=p}ZsyaW7}4v4zFO~`sxvWx0qd=UgaGt=#J0SG4slR8OS=vZ=vrn&1-a?h#?nUj8qsDJjo zMD5CF0OEIdf(T!G`1yZJ*IzRe-=^#K#U5Qpa_PFV=@^f$W2$YpKOWgb-+%P7q3=2# zv-F*ECg+yV(zimD#H%2*Bay4K>(L@1@OMd31in%7xA8~EPNmuBmw6bl`UmLy8P!mX zA<0Jh?v);$DgI}6btX~`>3@~`Aix zF#ZiIV^^@|yIOig?vpUeEx;6)C4#rJiX*>P2I+Ae8uf~ex;AF3c-rdz-a^5NKL8k9 zvGL>Y)R&l5#VSUGR3uk{R&3>~jk>>CeTeA!ws^Z4<%g*4s<_`Z-f@c3nps zq@`4_ZyBGl=4feII8sW5-IheWtHZ`hv1bSy54D4R*hmbPVs3=;YBMnDUN*HR*YdTZ zM4bxT3z<`kL);fCHeGApVn-5RIGBT|b<~DsgNzlUcBxS}QueJB2$v%5Z)ywVQ4@6p zW!UCa)Hf<(yi{`mp=1bc5HxEBgC9xp2M)&Z_)5GjPpKMpr(jSy;F*?;0`Mg-6BedQ ziQ@n~(tdpiJ25;gO%K!~)#2xBuyq__2*qXJxf5opB$d`2Nk!&Q{IlapnHtbi{Z@Bh zGe8Cr9|-||0%YRr<=r1P6`Zu>sj^(eU+73b#Cp&7ICye#TC?g>awAf@aa;{uGuSzm+|K&Ue#aGICV-O3pdH;()ym?Ncc+TuRoIpkJrRrU zW#mi7!3Qaqjk*Nh_?$FZ9)G1>wG~lUK*R4sW~~6eh&q&e^X>2+bdAxw&^^oE@LoC8 z1@oZmMos2e36G&tR@gm|#`mnSBtjZ{+)d-xvfoEu2#;@OSYyeS8ciYW3w0~bR>0g8(G*` zFYXOB^wzD4W^5AD(GtOVujx^GLF8fZQVF`I8`9rYZOdMHK6i;mp|(JK65T$E5G(Li zf7CzN8*0_)K(+vmZVX!_ICsRqa7V0$Wh%&fIgU>>S<0Q>xdS7dY@03!4rw|acdKrq ztAP!kKVPveAVs2 zBg)w{C!PonJ;d{X{IeJKNp!E5QL{k{3tP0cUDJotk6>Llt|5k@uC4L0b-76HB_3T8 zwE@M`edPv}&+Ioo7Ak9$nK<1H#9^JXcI*_8AfwTOZmzBq-fxWqXWRcV_wr_lTCRP{ z>a8T=hO39KNwD}Q_%_(w&6j?oo_3~t?Oc;>hx0~j#4o($bF;~W2e3wrCYb}-j>zvl z{tVOQrmLR7fn$V5!ZX(TpLK?S#VTJnNBHmLF0%_&LX|XIA_I1Mkl+GXFMY>;mPQhc zY9^^pC4WTDCZy=IT5=d~V^R181U?0$QJx$_iVVFiCZyCQjG=V!O9xkRg$HKqENMYcKEat(q zi#J1n%8?Y1w4q+w0MdGSX-B$g8T{eiX@5%fK|XlwWw-tN)gisw*n@I&=~c*lszj!h z9g#5g3pkeSh+J=Zi5kVX@#aan=no)bYUQJE#rJ;XR2;$7fCytlZ- z`(d-w)A zL!UdSW0+tSR$TK)qkx0WNX+~cdr z{Mw3{#nI10=3Ko4Rh;9k zl3@!h5?3}lH!*b{ANkDQ%1Ytn$z-PT#SBiE*tAY;MK_$j z6O7w;vn(R`eXBLZjA91fDZgd*C&WQ^O|0D5nQ}xdml+1m{GCYozfrP9@+I29bt8Hd zicY!*48QGsQExwq!Lk=~HgU1c>00=ZmKeli*f>~@wOvfQI{Fk0+QbW&@WZ;liAc1b`JJa7(6IDgu8Jp;t5}QbouVM#J zi8|WaYy5l>UFG~m6_j$+@=Cg4gN)x1n;*f{Pq=$hO}Y%Sl^5o7AlDps&gYYJluR(3 z#I%#Mo@TDS{d$9#qPxrgOUDX-3$$N?yeHT#C$Sr<6ofa~e^Z%xD&rb5bW5L%WMS5J zg}TNTQwg197jMlwf=Rfp5Y}bzR=3K{fUu-|-Cp+<+&QNH8`^jW*x;ts%pM^HR{EbQBTEI%PaqM zqoF~5Qn5yU0{owfweVN|>4w+K`gVCs#gqZE%2+MfL5iHUNR-%AY=EE(|45Xv$Ujc* ze827EllHZ>@r?a0H*SjVP&ea)r49k;S}AN!xs;HD1?Aga?m}8bdoJPKvW0d==vY;=h)I*8WKxVX1UW{>Ks(mUh3n1`oV zftMnW&Uz8H_I>(B+1j%sVmB1ULrFZ*^!SY>?HX-@GoIWLcfl8zUP>3#fc_!f`u2b# zh!BT+W0DSolPeF)j_E<<|5SXIHzw!jRF!)~rzM||Iwh(Y+Ds9XMVood3u+1Sn8jn1 zfa9vGUOj#hw@(>OjKXb9z!(T`qaSvW7IslUS-b6Mh1kPp2*SCX`(e_RyTG21m?Amg z>^D7FXaCU7(9FtwDH_KOts)ip`d1!Cc0xDHA9Ciz`L&{8rEee2sO-rm+tL$Ve5v%se5}9SalG|wqEOYT z_f4wO-Biks_!q`)7k__EDtrzlioI%#+b*J@s;G-skqeh>Gm+nIqRk9sw4?;6%7u<2 zYelEL?XADH#xql@xuJZ?$HIn0`QzSi=j!MNG1y|=ums)QtIM>+g03<*3yV=k^@ewf zF``zgTmktSuU{kiB@JoG`?xo>EpW%b_wiL}$@h2(o3+KtZIYwCUZAg1jqs6MPEPvn6)gzv8L9@3N-<>Q%Q5hU|C4xrTJm@S1)^NHkU^YH z5Z}F64fT;|S3*rV4}gH2g~zAE`q*jRzrVMyIVpP}u1hH2>8eD#F&x<%5;C+|Dg0n5 zO8*qvztgK~X0>teThe!9%~pQG#u_;y3>)fJOy{7$BO_nL53o!u1`6>5U0ELlX^5bg zd{G)94q2EmiD7ev(x@0)!llijQ2{LHQ z41dD0q>sJ>i&JYAAd&;)MvvcDYmd7iHeC>#E{IJ9Vs;ErexZO+U7d&GzBpq?C~}!` z3fu}i`yJdjr9J+&v0f&N6Rxj0x#=qCEXq|aQI9|zTd$^HOU8M@BFI0<9IXzrCz&O$ z7RxN<;HTG`S-o|D(p@XG5Ch7kzogbNX5UxK_yR59(LjiW2%&9~+4EHqW}fK6LIs9M zYxelN!4^|Jvr`1ql423X4ogc+Rt(*(*xy=P`gLr5F_n>-6!Y_1;}T!wR3gAAUA&dA zP(&}?f&Y4{WrCUisw{_?H)=~SmGP7|mt&DLI^SMFiwG!n=aCwWSt9s>clSyyq4@e% zrUrQYogZxGN(g#fT~Z`wRKG;ED1@@;OSEv`P&7{DE3- zxF1@>mu11WCh+|W$V-HMw*8{wlmUcGH`Bpk$+F%nYq4v{!xBh2MQ8ys^li?{H`IB6a}Zfh z^tZDHE1RY?uR@Drx!f#&w&~V2Y+A3_2)ZX{f$q?LQFtKI%4Q4=worLYXaN6{S|fQ8 zkEC4652`LpiJZIgVz7?HEmCp3^7t}wTSzA4%_{t02U>+k<$G(yoqi=(+`^FU%ELXs z0DJ(8eUYFHg9_IO0)&iOHlO<7_=oT6O-?>6-1?m1LG{}ltPlwni9v4nEx|ff+Br&% z&t;c>rzdYBXRuLpb^dmrWiE=HDu`z;ET$(ne=b)xUA?l3Nnql2^`o5Cp{fm9sXAX0 z^YySfq`$aM^moSNCn5EE&JL ztKmqtpyopGN-b)3!AAn4OW=9Ab|{{@`g!Wd=(z;DQ8w#hD0P6L!8R6E2`wPE5B~?$ zfyBN|Fa0K5dVmCu?)Pa+h)>cA|hpgJF z4NThA!6%S2X0g$T9-E%)(b>>9$O{cgif?J=RnMZ<~m_3#*pg~ee>pWD%u_@ zZRA;-*C&j~gydoDNI#odKaf0X5Fxi64945rwPhDEl!gkvt}fk5T+L4VGqFDu`PRd+ zVlDY+-r#!|NyGWNe-_b9Yo_JCT$=kL-Om(DUL@SR^L>TdZXz~P4UxCa6$Qd!a^80w z`d&MqGOaYPj)9NjS`Y~sD;0L*z*~Zn^Ko=QdT?j|vmb1a5Zdm#0;Kg96kA<5-xui< zGLv;u9S*<)wB)UlVP-oixtB_Z$>n_RF*mo&8^RE=e+?QdieV~k8@oghs*;V=)wVHT zJ@Xae;^}?v4GFm_yC2_Mk9S5wOmP`4|WIKU@W;_p|Cv5}K*R;mZ8B8Qo^MI7$d{S}}9z+UbxwSuw=g|ii-&gnAR9s=T`zlhYVosdjF|%us<;PYQHQ6=73#2#W*hjPZQ1L7H~ng<(m*h}&Olyd@Kq zypSYs^_Y31TDy`%;SzBrEh5EC24o~(5o-u#WAl)SYCPEROA9zt=M^OLV6v8JdX z+6y#p1X3)_b3j9;S&+Oqf`WMH-(U<|~;|L4n9$czyWoEU6<}Ed81HBcE@-I%llHbe089 z)?<6y1|Ez}cwPvZoJ6G(ncZD@tipS?B0+ozC9-axe}Drqt8&W0JfHnl4|Ogfz}Ava z3&_qXFjfi%IzN{;7Yhynx-%OADP*ou?)jzP*!t}hj;nQ6iJJBiT+;5`LxNo>PbN=> zC6citc2(X=!%33;X>VC<)B?Zh2C`53XN#nkJVoZ;8dP;1!k#!>qG~VB>};*da~7bG zX|z8Yi3r!RSLR+uVXl#e!HJ;34Rl`_?cMiQcV|6*5NHdig*1Z3deIBi7%RP9f6!PX zDu;MWmtdVL;dB?Fp`qg+9ap=H(qY;%;bJ6xlS%5KEgwv$f(^()Qc65P5YMIEOBZapMR}C2}L|^H=K}3jPb8;FD`<+L40UcGwBAz)@R}wLfgHQaNhLMbE zn}4D>e*IPoAQfmy>q{j=oPf$vGzB7xig@5WwVx?S*%uf9c^&WwHjH-rEuFkdpzhkC zl~FD=R;ftsYu0nV;@pFY4lw_6KANk)@G#|C9`4~`BM;8Sl=oP@bAt50P2p~ymiQw8 zLvS6k1+=@yMY|8$6xunA-%b<=+EuBQMW{niwp~7vyLZeQG^~>gIBs!$af>7Q!dZ1c zK}tsac0aZFQ}%TYa=@e|H>$5{ianyLHLl1nb{-mQWGt%S+Mf+y}7N}^Tcti z8O$+TOHoCLZ5$|oT&6@!wcC6{L}Qu##1~Y^zEcWv;F;eM+W%H&vudu9-h~J5QTr*R zQ_*N-cC?vItbG$zc@>1sl~P11RvT9bej;1m(s#7vD$td)BmG0zo2iBk6-r-F`*KnJ z{vBcep0NKNeP9Za8f$5a*BbXKMD*>Wlq&|u72$VaA>~TL$N(-YXke$os<;_~CHmy-WfV%OY`8eiu5oHItS&-7M95GD_p(RO2G*GZnuO=GF6guGU-P1k`Mdu@7S*;bQ)4d zQr+f3p?^FP_GXHGsL$ByoJd}HV56+oh9%X-pTpZDRqgV1j2vY(wtLY8V61yZ*$AmL zS5Hui%Tmf7_LwLLMijk|wB~9@*k0~`7d)|Fsh4R{H9H%)#*`iK;DKrf+yP}cvdAfU zjAf^Vc@9}gSv7TZkcqhzU>z@z>Bpv=sId1%?LmY z5c&EvH@ii$o7C_}EZL_j*C}NeOZGoS;7Qm}Frp2N$oU(T=?;RysSRnFn_D5dw~{OT zTG=1vm>x|*q0&Ip#)@gMT*H$1PT1F-&yV=;*8LedH$19v=x)5_jTiAm<{hEcVlXV_ zBWg*<3Y+X7^jXg9%zLHJrh-JZS?Rm3 zk8cpo78yxN54NQc-B!_~r-!K#zT2GqHR(S4(bdq1tcG8at~`0=2n3rzIRQNNEwIT* z68|5j?4E<&MsCDJ0fEl#yA)$csj1sT$Q!aOz}tAd~GOd&rMJQ;Z3KBQ^qJ5ca?*VZyn+O8$l{ zmL6$Q^bW~~Ay!i%hgk4-<1MycjTh%YItPX9|16JFZ^ntyW9m$lCRDswV1dFnC>Ng? z$&u8iC5e>o!sR@m7m7bsqV| zxYOJs&{D4;kkPCq#;U5<%b?o=Kc6RnNr)Mp}nYl(|jgYT>#ZV?%J(`MWCE%O@ zOxy^Pa*d(7?yOV4A>F;SqSGMf1T`d=e;AG!gc$FbinlNz`vj;tV|6p`@1qK(EfmdpS**gft6g=j$UkTh1NWrix}xW;ZgGcA+V9!VDYE@Y z0wh*GDz92K7j@e@ZGD^UpZbeS_DMEOim2ibxwx;pc;6OS&nyG<9`uPQs?%U#^#hH4ic=i6wt2c+HB3O2M71p>F-baOm{CeaqiE)CaPZ%alc4=l` z%I*Oc6cNudBJ{uwZx-v z9huGK9+6HmEK~7^9CGX!@x)F-g9xGnfrof*PU^g{d|{cr(xs3Us&(U`VlvW~$h!Fb zjOHO>%ac7y;)aV_!wH`0F&(?>c#{2YP!hXkBggn@D$w zJgOz{7i6H%XT-C8PAEqiGw|+?-o8w~6CF}zL&ld~Ke3y>F5}CtpU4HI;-NmDx;wqt zRhf(zd$x?&NG&O|>zY;gf*$~W<3f8FtwJEA9K@i0A^&sOR%2~Hxy z!rih=h+B(d&tJZshYOR)mA3X%CT7KC9?Kg|m6Y5bW^r+@R9k>sTsnYX$=xMf(w0TD zrCD0&;vv}!9}1G;9lcU;9VCP2C~SAJ&VJ@K>7KhFx^$3egzHFQEqNl7EDR?hz7XHy zi%F8`w<|xv8MC%ySCGLSo>}_r>{B0?KG)BZo`CoX{20Wj*44bS5ggBH(zd}}F-JJgcOTNFYy+f@Qec0PNBV=e+ z;f+%GakuaYw{TDjzw&qZ^mq3^hu#A|Sllvif&L_vpBO6Oo*4GG>hUL)j9OiHM|rSdE&6x-snB zHHl9my@M*cnb%&(4qLA=n=sCX>7MNq*co9_dPmKXpkF3Hv zaguTk99O>VqU5htRjSJ>(qPs;hGAVc${p5Up9RblDX8>*s3!o0T=o=`j>+iiDUh?| zT^uqWch@?+EA{|`=$oBu9STOi;6(J_&AIEHCiE1tHps`Ubh;l;r^21PnZ-{L z@mceJ@70_(h=;L&m`ce-%zoIceEMY(cwpmK@h-c{9D(ONDN^wj(jgByUBj+`1eqed ziT2yiKf@@8k>Z})eo9*#NE|Dyn1`1VH}4u4sQi7R-@4pO;CZ? zA?0Ladd^*Es*+Lryaw3@$fb|&yr_GCrf+iXFRjAq1F?d(POnQ3@%kqbJ@LO~lig&W zrZ;`lMdE;M<4}ux0?PD?Z)S5Oh{f%;=xe52Jj2J6^V6TX@YU90g3=x`_Q@qnhr8`@ z_mZ+Hm#dV%;KHiNr?G=W-GwT+PP!I5_%k8uqTKr&zwp{cu zsx1tD?v)RkcI8WZUK4A}B=XMUttf*~s~BwKThI^JB*X_1=aiO={bmL}-sqP}K$y%o z1T&^!CmabwDAlX`>w^s^)95;3ZowyE+W<#(x1-}&NA9Jnw#MBRjI{^m9UuSbYz*eK z_<1=s>!~IwE!Br4CaIhvrgz6b4btg=wp^l$#XmaPIhJ1!FS7VJ6;HaCw)FN1;e5@Z zoWf1t;CJ8G|q)_lXWnH|CH~w!iq_ zy%apFmSZF$?FJ68l*$S&BOkEhddhb0$I1Lc%#a|YsnZp(mv)+cC%(}ODevVWWjd| zN{O(aklDQj9cr3_@%Qs6U68fG|2o+Hnd-WGgbB9=o}Q`X;>-DXq6#WLq6h$ljX7lk zCz=;+TG)6}c1-wBch!w2TjViCq$0V{jYm<(NPHXJTCKFl#-s9$V)!K_tC45dqxR0F zD7sI#>f{TF6d;F?x}h;bNl9$4W9&wJD;0U#N^>Djh#mIEm5&mDg@A(a5UYv_t7+gM z1%kr~t3P$P_?*$t#z!8fB_)m@QTSpgGir^0h@Nq1`&V#9SCeyqA&5P_kqVdMwEijn zY!}JG(->JNhk$3$9=3qpBzTn@xk|z*m^hRX3dqiv-pD@Hz;xF3$3_kV-zrj2;l^eK zwmN|oa>JoclJ%)L{*7wFoMjM4J=q>Cgu5i#NNcNktRQl-Zan$`RXDpyfgciyQZ!O) zc+)LYAmyag_ojk*dR>OkT2HFa9#o%6|5A3rCz(M<2Jr5j4EeFoRQpXCX~P%fr&6SL zIAi$J$-S_*4qJit=OK(v?^wa~0bz4-nfbVn9!{`&t_PC7N!E}GZnPud;IkYq7FC-U z706kk*sXK%O*zrVkF6F7W0^t~v+oX1|M5U^^n`dzah+0z)Qq}>;L{?`sXB~3a_Nmk zw=?>-w*?NnxR0+(^nCI6s`z5|W9Ypr1Xr;%;CQphoON`y(TZhy=~gl5yh$qYzl1Fn z5ooJRcZ1|3jmbyD9g3=ri;yP|ad67=4|7bJc%vZH9(kcCoND2!+&F2!cO)FqTq`3M z!UHV3oMJ*M3NeKnr!1gBR+&Z^S5Ni7q%d&$$Ar8Fw__A2Skdq5=o}L zYV&doUuO&`XJ7ESIkpT-pX@ACwO^z6-=CbXPI< zqVcUz?ZyJV;g5q^btVSXePd^1cy&PNrIe)5XedPD$0n^B#ldZSv8&_T5_H}&G`zA z94{t?l8un87nY8pbM#HQmRkSEgbfSW{qA^FinhcmPfD>@9B)+r8~z5}xP%1XPhmfu z+ZJcrXJ5f@2tu3bO|(4Y1}fcA=L%7#_0Z2eIl-PW0q3Vb6B%ZtJzw#b1ikj|143Q% z2WeiI#Fmy!rc!+O09GOZ2Y&^6{TJH3VV|4_O$14uq?e~;|)V5 zOFpjSyQ;Qk>?&q~v4rutwORW6T8;5+t?>d(Q8z3lhp#ywh}dhF%WX3%#Z)PJ9CM4r zBdYaa7yZv*EZlhm?`jt+ZX(vbtR~R>)EGEzMC<70Y3$*3V|om(vMOvu#nJW-K4J2& zTrJpOFB-++`6he$JVs?MT!j_t{QhR`1IRBM@W+}(ABEo;;Vwt(@%5Kdy)Sx|UHS(! z1IkEAxrzx#Uv{(fx8@GE8Zy#OB;dZ?4*ODa-Q7J7Fo3V{k#k`|e>_F*JK}8{Z=Kop z4U(RfXJZThBFcKVL+?K8c1TZEcPXYS>GU1qOx{B+{q|`DBbNsE-y{t(&+J;#g!L2O zEUWOgR}~FQAM8OiLei<{p)Gg<^Z;0AkPXYYfgk(6517*|f6VxNcX+p*%6eo(U(gl5 zJi9D*s(YMpI$CO-&4m>>^JS_^wy`+xRVuKVQfHsOLW#?jOe2C!tMq@y)E5K-&!Nn+ z29?~!XGU!!eD)aWOnfxV!8%$Qu4swdDL=E`jJ}|%ERiZV9Nt-_nLhxN8x*v)L{R92 zA8Q%5FMCB_EB)+^DEjB1+s|Yh3jDvzjXirp#GAHz=X8+Tsz=Q#nB6FJO@r}G1@^wq z*5WlUup1gZ0DgYCAe~G6hg|gL97l20)r3$}Ohql*YpBTw(4pIgQ)@3XM5UUlvc$w>WjWDzR05VTXK;=&Rrr{m=HVWv)+$I z0VAebo-?fYj^c*J@%yJ@r1k18%1A5GPln4WfON}ia<--Ttk`SrsWvZZVN#0i!rQSw zt73Jf7;-Z!hyBrQh@IYutTEVHM8=}*5P{yTY(58@ODn%QO)L_ZzvDwmsGBw=oE1fj zj05|(C2zP$LGK!wd24dJTzG)5K!;s5NA?vn&qYYXWe%ys>^GGc01HTAvrvPUz?uWH zyIIb!3J9lzuRO%v^y$Ad>ggu{Ycto-))?EMBfZrXLM9o zyr#vkq!qL+rJpkyjpc1fgt8?2LZz>UjJGg{sRX`~|r=$L&&*fLhhGY0?K@>x?1>I16P`919d|L3KXqBtX?7<|VSk;np8#)1EBL4c=f+1}0 zeoEcVV}~-DXY`ykO5w4`I3P6`iaLdb?Z8;<-8Z?MC;2xroF)8`@}guE?;oT~<83An z-@Z-h9;|1wS9p0&l{W>tIeJH%(n1zR-`C?CIG)8u_)Q5~w#jcFJ4vWY(YkW&t9W^K z%7c5@NCyc>x8!}1aEW84W_3J^%ZN9hMw9<|VTh_AotWB?m?c=-ydN1V@q(W!nZ_`E zk^XIg31=%a=sG^ed+5dzxyY*4ych?vR2g1tZtc3!v#2dF{VeHt zLXz_S}qb27=NmK2hqrmXuE958E-OuhpqzlnKz&hncRwk=*H$V3MZ_Dl|<~F3x zG^d_{jKU}V3bv5Hr(E_1Za$24084X*IXdrf@&Y}%Oo$o^oJF8acKm8*;%-Q+%AZQD zjduHC4Da#6c~@blb*8tE7JOdy1zqo|5;ABa9PJwEurVE`@Cw`@-7AOwU!8MxmiCXf z+f*ooqUd|91uo*f;VOsd^PeXAe6c5|0@zH|*FIHUvAagA{viD*{byk)1}axR#j@#P znQmU+wU`y^GA^og)*xC69q8utMr4Y>0m{KewZu-44dvFC?WopV)DBj>qQxcB7mK6x z8!K*MlkPoivfq~2XcU?=h1E%r1sBi3m|`ljnK`H^HnY+fi*i?qM?EhDWA{tP7YmHu zVjRKP1~m|^PR=sT-wM8_?{nvy)l$0X{GCZ?3sjt`2;w~Y=#f_Bmz+EZhb-0-Cy>nY z967r!P~;Z;wG?b#E_CD1l#60O)?uHCMPd2`@`Tv@&M>e{sezrhnSZ6LmSxvD4MbBb zzJ$+FD`fg+q-T8qW>kqNeF6(FyBjPdN{C?Li%5cCVc>bNY~apziPzNT_^DD1X+NdB z_-uCAGcl=kddUH>5k*=bE}~67`!;yy9qg@EW%w-FjrO%WML4fjyjHe%CZ7=F1}AJd z>m6G1e5$7#BWN?T#kEEhOAk6u$l|$})AR)u>0Hw<6xN<0mVxx;;9hr#iJfFSP5j{; zgu5M3CRmj#u<8QC`{PmM+(1@aVC@-d3PhmEK-PJW941k~46ic}tzrfsp^BH0kuo0; z8&*p^Offg)gH^|xK8NNpQq(r*L=A(|>*9=9u@#0b(@-dbr&lE7! zjK`*InG^JaqXe!coN>SobT;*3XvQmEQ>W3C)YJszzp7=*O8EjHrFdq_`Y-|Z&vxW) zr``J$vU}+zACCl+R4^hfv4&;dSpNWrzo=`=cOoN&48$;Y7S*5%cWgz+h*e$U2GA=0 z)oI$zm+*l;gT4HUXZVN(IQX<0i_lIg5!gW@I1Tr@HL#Uu&JSx;Y@~Zg96iW2StT|o zrYYL3P3eBBoz8G4k)ERm5znnh^kc3fuvLSviuA+9(=(nAmwu`aR*c6Ar5QPGJS=Sd zrBK?TBYZh?bPr6SK^g{;X*qck{WH}N^%*bg)*30^z&6dN1(*SWMUEJwn*5bCN!g~| zGNyjg7{%#+^g;SPvtIf;x=c%4r_ghPKlns3*}-)Jh|$MuiAAKlFDF1^yo|m=OK9?Y zotEe(zjL%iieDmxupW<&GUWN#hL9owbg=@8w-3{nh=N1&zo>QF2sQ<5Lkt;dpEVMXeQn*f*Pn=$TKP5-Nn6_4?w8*3WmtI%B6?Db(~H-0{|91bn*j*f9bX-1Q_jp;HeV zQS$Fc1WsoZ*4PdRQBWf8q6E>Le*>nF<#T3G*riWxZIF!1`~r?A$#U{Xzb8MDwuwW&%&^lvWLR3+UJ%cq30ff>6HB%Di zYV-+OQqHww*ZRFlgv2KQ0p|8L4M1Wo&nm9?2|sqrDTCyhwY zATP&j?)vhW8VY&@ygCKA#$M6yaTwu??$=BA>N7q^=g9p$dx1X(LY%$s$`?2o35E5J zaCZBnO2%lU5EAPyq!JDXtu8(ggouzjz5SoUGtp7!=-zlE~ab9(%%9qZMMbDK5d4_&-L9RR{MD}7)8bid5>XHIS77)*cJm@9$gbEl{ zH7=KeWb_RmqKb{$O^=Dd$StOf7rtnGUR_r}K$LLB_Uk`Qu#zuls+y}h2#7kl!x43I zb`pnwXA+sWE@mGlt&6jYerG61E)vLo^?=O8A>_m5j2dChgn*Lb#x4Z(Ey58Wa^nlW z#3iGAvw|fQB;$aBgpfKZNa)FK8muTtu z?N=N}f$$Kh%366SptF>p#M#H|ILxf?El~Ulp?K9*>AX1U?SI!f?K@Sdv!~JU4hh@l z3~idlB~$VLA` zeEXjM!QcNo{X63SN&k$49wl_b@4wl(n6&A!=@+ zOxU~`M?n;7g#{m>saY!i_+c}U$BS+j=JOLSZPJ$RaKha0CWp$A-%rO|KkVO5 zKo8yMcP)u>RBZ&7OSZ9GI;orE2fJ~G3!;a+4p1@fsLJXmgx2llqeZc$&cPal9CPf& z4ju1rRqvO(;|&a;8EvV+i7p*3ZJL3;@)^a=Dxg6&R_Z4waE|#Wx`kW=|lj z0#`I5FUw%JU|18{zgI*L8EmukTQ^3mw`C-c%SbY#DD+0*;#-MJ@4qI2Q z7P~l($(d$r_+)mGBklU@WY0EY+sc6Nf3fx^@KIIg!+$2pKtRF`NC3AQHBqPwM2He0 zkbw-`!5O6>idIBr5v>Y^8NdZeGBe8cI*JQwTm5MlThwZ4RW>UmY>89_ToD%*7w$DG zaf1Mo{J+n+cNQXj`~Kek`Do_ebIv{MbDrlp&v_QajZEjoj&pV?Mp&@d;?*VyPzY2ad|5jX^ zVy#%k$w*svw7%yWH4BQsbOs1XNpRPa0g2FwSp1_{%q<5`*Oggk$&j!3cRa{G6X z>P z(GCxTu~NuDaeih2S4!%(D=}~m7pl0q4j0elk}JBaNH<;)m6{+L-{@QP;YPH%O7!`R zm*$bI)FlEeKN1FU{DS&$bRE4283*zECm+(3{4@=8`OTm?AmsU)3lTA$U@qlaPJy8S z_8#a>$a4;|e}c>&nthr?-NA+Dfs#mLz}Ox_5%$x7@qwE?YnLNmRrQCA_s9;94wY}8 z<;ToZ28|)87XK3nls-sjgT@Eb7DaE%D~TLSFA(4s1afkV+qTf3fW+Kd*E>LXcS1I+ z(x8PRycx_Br$xE7zXWRJ~$|` z*lUV-3>r^KXB=Ng57mRq6J3>_V; zS5DOSh|kG8e?d}U@QcNjxiXyl7{B|ivbgeL_oR~}gT<3<9&uC+rz{=HmYxtDZKhIz zYZmswa2R1Mf@L)lEcDHSm4<@F18 z>IVFf#EQqz`h?2`eZ)Vfs|vuxaeBi0$as2gbg)lT2eWE=Nc-Og&U~m?&@S^gMsmI6 zE(+BADB0lw1b?1=4(Dm}T##c>w#PHuV?Rp12wr+H#^sKi-K$|Rr zGHDzjoP#LN884|ZC6^6%6{>SDsoh!rofhp*yVx?zmcayT5I@ob9)+!!N2Q50k@*f9 z&s{C04CTQ|;eQkg;1QJWi#taF^F?QIjh0}}v3}yb)>}o|@*blordB$UTNzA9T zR;{LQe?v1}kM!~>oqV#r;bTzJ=bgO6zz$lai9#j9RA)om5Wrpxu zn&>eWH2~oFT?Ju&b3z{WMUfokxq0yznJja$&JWOa18b(B4Y=}-b>Kaj1ZTaX9NXBxfMGtUwe4g~uJO-X6m@``Bs-30@!h6;ke97EG zSfrc3@n(&loclb={X^S!3O2p8%o@Q+7l5d zuy6tjm_Mr3H`VHkG$r;P$8^2?6@eM8R_v?*4Jm{9xTK-)*W}sE=~A<5bPSY#tVRE#R!U93J&da_hcD7iKgbJ5y{z*JmIPE+u>{cZ8=aM3wJv<6 zrpVzHlej%sNTbi}DGrBC?;|J52|zTrp86Z|p`_-PwYeF2&nD1EnqTv6j1^zbB6#dS zOFH;#{6ayAu|M)E9oKV2zL;%4$UE={)kZwXbHI!)0-_~rp2~{J`lzvToD;VhlehSc zZ1HdzyG-gzR1`4|B@7cdHg8&}@P)+v3z(ORtGWWb4Wn4W!B5vlZLw~-SzM!xCud}V zxavKQ3@v&L<*Q8Z!1Kktv<|lvN_Rmufrdxy$z4_xZ1_>LuBwG8{S4i zH97ty%t@c%P)K&h>!8qLL7}!|IgDQ6E^YZN+5?Q^J7%Q3RS0>WwKjB6Qf z^ynKZ-=WpsuVkt)X5o({kF?p%_U#US^1&(yK6dc=5Qth5llKrDjVj(D7jdZ>5;Ux&=c6nTc5UT8l@MjGGA{Lo)_equYNI;8pz)fCNhcHofCybE5d zB<7G{*~N90v5n%yu|J8j+NEsEfN40Z?PIm+!JX1IynwRWjm~N-X5iKkMIrY+5t>X} z6e|A&N6r8`m`tf7h_}gV-bF?{U5+4`=qaZMo3bnTs57Dx&vB^8Dv`Zex&+PHJ}1%~ zdo$r}dp3t0iFHx&&jDN=Dm_aAAm-6q7@q?5^Y|EktS$t*!sVdKar}70-bl`o<$P^h z0eJPHlMVM{F9yp9LbhK??~?$2j&%>NX%yFCKZMjz@d?~OzG;8+Z3a9Q+P{_l-z{BBSm=#>!Q2}iB-?QVq!^w= z{$=+jr3@1_kup@t0j18)1EiRer_W}djCloiB|d)wo|Yg=0rqOuHQ8s*u|-ZY2hcA` zGe)u_SQm#I!rP5>+L@^5gu#OH$p&)yA?X`klnj`lpwZ&;K@K@dGCzCN(38xM$D!OX zKl=q_(SwW)ZO{BHCI?8lG?V7xJ~xB;Y2wYV}_D3umf@Q%rM5pdeVjSe9C=JqUQPs%i~!`65ecy!8`)=CpSF zjI6xN&p3mqbLfIj3yh+Am%eN>%3OA z*N%`c6E*Nm1|i$NKz%f#;3r&=T=Rj>jz1et<#hq;n zBQ!q6A`z8%FH?nt>ZKq^I$i110XB2^i}COsFc)}?uy1DU3a=l@A0S;$@&{V{ z8g{0`BcS~xPlR<4odLQ9*@$aQ-9+3av$np){jwH+X3z#UfJpE58vRuO4 zrO0vt6T{;5RzHu+l39_@WW7}MQLvTDF;&iy$aFWM*EKk}l^YXEG6ND9&j-1W{38;j8ypm29;PhHDw@fGu{8 zf%4b1n5?F@Y^4aS@VlHBnf>o~boc0<9C#W;klwQkQj>=g&ZV*&)YP5*NA@@ZRlx3x zpJz;+z!XxOnKEa-Pt}~MBvU1YJnu6@Nu*@I#<&o1p*s11c(Fw2wUZyP^gHxb-NK-1 zugt{yV?0&*0m4(MIDnq>YJS@&%+^MY{W(GMLJUsAKF9f*7?*>DtEUF>a1`w>z-M+0 zp3*G5V1zr9o%+!NU6V*0sOXpdaZp>_hcOnudB04-T<)j0xOXjya8FpHxqY157N0pP zH<-XBKUXb!&R}D00FV6jUt|Z2nRy{&L%N7g0T;T$|z`fyv1WV~Z^Q?5LcVqG{? zaZL+fXNW}Oz_9TJnT3$?rMCP*nHIY*gL9-LXq#&B-Cwh;FMQ9`#lPYr!1@C#k?=+Y z>7s=s9G6mfk*hscXDiuaGNZUNYv@i{67_74-Xl}Fy~=cF55;{oy|#}GTQ zVCydxP9Hmq4V(E(tj9ly>o`c_gKE4s&kb z$Uwx=5QSvX?c?QLM8VEx`O4>PmJPyOnBM=%PZF8m|4)j@*o8+<&}z1iEz0jcob}0B zg~P|SbTqkzLYZ6WBQgXpu5J+|!#-I|FW~5u6@u{oao!d0Pmruk-ao{FJSi(R^SyM8 z)45q1K)Nbt0673$TflUw?b3>+RKVFTFQ1X#E{d^X)|_4A%-S)#)Dj6&PICUH%7J1F zDxyu9ET&u)IpSl)N>F+w9#x;DDo|yWBy|$6yNV)ppDFyi-D@)-tDlUtOPcB zPNbrc(Zm|{rde4d&JxlzN46?qJW}#TcQ%5i@YhM%kssqFq)8#qb|rFD(wno0T`sc5 zEvyYuD3LX`B5NG0$U`gaw$4*X%tSBdfwl1G)>(+4@29xDd80dX&}vdgy7{Dq%Kz%h zmk#nqWe6JoEMZQPA*_lXFXgIQDbRcQqoA2lBA?@tB9hG z@xdfumf#2))q=XhMJ2{|ICN7jgOXz}#vqrCC=2Q?5_&+whY9beF0Yzl{5GZ-zss*e z34nIGPm9j$fHZ0cXdF?ray%1lh5LRHIA*(7e5|m*;KjbBG-_qZua36<T>#M!hLMJ7An^=O=q1LXkJsMZ?{WP~_JLMOqPxd?*)kioj3%I5$4$oRHd}$u34xvmFNI`=3R~SQSCB zh@oU6QkazsnFoj%;_`)3N(nt6LxRWTxxL`SxpRa5-756&X+{6osVJ&A^bcke>C-#! z3H|G_42`m(ZM%;kelb}PT2w?#$dtNIyAccmPzXaqmP6G(QnDv=2RZOS$e(06wc1-r zU?mmzWvX4yk%L%`Gs$i0k;GSu{vkyF9c+3g{gV}UEvQ0x~(f@(d~&8H(V zv^tjkl(g-Hw5?C^AL1-DJ)0dImOFX16fip5e@YS>?zZ&g-ImYjjQyk*y-P9^6?G^4 zM{=j&Mcr||;7O9Z`iC;fUDG?VVCu$SxxJIdsQXXU?P?mj_fl)I1EJlfgp`mjdel<8 zbnAOCY?5xFuc+*ORi)4;C3^W_+!3TpbqvzgQ<1J^d>yU0??k1TCC)AA!2`!bxlR&D z5xzJ@R7}Yg`sxyu+vHuSu>`fz&FUmkQS{FYaao0Cna$qT%|#BSp5;>NJO%TYhX;U*z35P~bwW5K;|^NocqQJTkEBl{1bw+m09+jjeX1vkC+Jf?-O8X( zVtAM)dybr12|)Icp$LL=T3j>0nTuYWVH~tB8`?!n);A912!e4*f#fDhLC-Ib_RTB* z$8YYHQzb*j(@9H;7(I(n#(ti6f>{VVD*7jv(;@p~{$!lvqf+ip%4H0o^;~BFmohGw zwp}U3CQ0=iTctjwMzx;;_OE32Rr3-c!z~|xmfM?o=aO&kd$Lr*l;x>;aIQ?9!@9Nm zZE4y)nJCIA7@DmmWpz{WPWEp4jEDv~Lyt!YI`Tha7MRFyxDI21{Q{%N`;TMeB`SvS zW1akatPqtxhmusR76DWhUHP|txa$9=4}r9J>_(~aTLEOT9eupO8I@X52Qgb+RE-Kr zV?&zM6Jk_S*4tM6vIv*t&xf0dCaE?iVDy0B6WV#rx!NF1S{{PLxIOBfKM~D;2lO!^@=n zS{@$cVY)mtrga5GF0Ay8t1I&E5K)h~D-w0zNMFn}pXuS4X-*Y~8_|~1xy7ieVq0{q zZrr{uFX`XXGXH$2t?8T8dC7^*u)+QryYD_O`@#S#=&_{+F_=`pKC-J z(YhJu2D;(xr<$${=Lf|xS%cCkYf4z6GADA+-qPe6ngs7EeQ)!TZGzW~7P&2Bo{-89_IxT zJ&62k zPqJXEiiJ7B1rlq*VofATw7_3~Jkz?AcGUWm*131DI8{}SyqdMY7j{3kdlrH&rY&fC z{k-6zXDB~Ybo0a#BvDz8O`z`;rUvA?iNB%po#8v2c?%?}D`j7muM1D{nTxLEnbBMx zNUV^@Dx(=Av%mKXcW)Z$l=nqdMt0;pe3U51GpnnqvC3$~)UzV1xvg!^htZZF!tX^} zehi~iS#g3yh&kuAgRa~tWJ>FBSEkqKuKHTb&(XVh8{dDlwBG1{sLf7*;eJWV{iOJ=^iA|#HPMcg z9&-2q*4LZ25>|%2q}D2!nAR1~5e4ILm6nUowPvo=iK83cTVO4f?O=$<%kY(W;u4K8GqFOMQQ$d=EIyUm;C5I5mB1b>PdU zztYzVoKt`!h7uAW!+B>4zHkAa)c4;80$3wHs8ISx>G8|n*7c~nV_mRKJXU?Z20W2v zT`Eb@Ls=_;KJvzIL%|0T`!+q=>8*yu{9@~m=gCCH>&L2oKKxoz-YD=-oP-4Bt1Ir{Z`SyLsPh<~iRb+M zh}44(hH;nhRruQl^9Cf%EF3LASbvIrWUWYfgJx&=Uzk62A7<2J<`OJ_b#_I-_*Vb} zT%si&+dB(qZG6Ke#O#mQspnh+;d@v*ohW*QrwiTUs538Uo?RqG%#%9t6G+^CQl7OR*S73Jl$!ZMPXv2IWY^=0N!Cp|y8k=i zrtj83;<5ZXm=isL44g>z4NwFMG(^SFT|Gwk5YG8PO}&^6)!RAW>CXm@KgtWsu<1o{ zO*sQ(&`@AK^|Wd+d>qllm_;s|Mu-PUs&y2|C*qiHkJV4eA*o5vf4+&hmrk!;ihj%Z zQuZxa=wPU@qHqViX`-~}`I~B}i#|Opx6p(NCBA^Rt4L8kC{^@64ZgGhs4yq7@Q-zV>xygV5xNpmG27 zq_E0~{HJk3wTkf9f@CW1Qb;Dik5#`I|0?1d5bt%?pWuW+!Z?|#sQHJiqQ6dH#vbL= zF;(ioXQ0&a^#Y? zaHmo5d8~IwU!TAwY=piN6uZ&2Wqg>a1jd6PL2K zLC<$oFl(K7YUpp!ja!d*Bx5Enf+`#62+UwMk5= z-Q~1H)M8yNw~lN>79Pis^r5saWB({23gzuAr^Q-n(FO72oEFdM0u=uC0R`fdCEEqk zgHhF?O3A*>$*z)YcL#jnWcwuhN+-KSvfUl5M3jHm=(Se-oHl)w?4ATy3<6^%nppXaP^X!2z4ku6?9W>n>s+YIS>XqEjVlxLxQ^^Nre;NG<9t zqK>kcs&lfGXJzZYPd!-~lP_@I{(P1q!^%Two*dM!_sT)-6MDhKJjM(DlNa+7D*rw_ z20!C+4r5Txdh6zcf(U}iNH_|Gdol-yfP$znqUA&2`R4X9{nUv18S~PgLAOw)Lme zI4N}j?IihOih{%^l9&F%9$E}Er*uV=^U3~*P)^+t@O-&EYd6+u-Mm+2B%hm3K0lf4 z7VE{k>!;bFM~VC%Bmt(%S38FTFR!VCvQ97oAxy@D&X3us-nbYwydUO>2hf+dkg{Ss zOQ?DA#V^^3XaT^73@5jw0Ijzv8*@v#RUCgzjqugZIOIp>{ua0M)RtJ``o`Y zcz?mSlGXH=%;f-HWd5*4$3@?#&G^`;l%X4_7#KnJGJ6RM9WL(8Nk<|}R2BCLlF?s# zzN)wqWugK+%H>(dot4dDVx9JUu(&d4k{tvQz=`pRj-e|%U8*4iS|l}phyX)E4E6T4 zeWLK2+kTyXW=Vxw#{bm*imw?8b15cAs>2Tz>+bIu_jiK(d$s#J-Tj^E{?6l9dwxpB zFvgy#hT+z&J%8i>el#w=%oxv20$%@dJ~PJizv_QOX8#|+`5?>iU-lm%8<7s8ZQ0sg z^-Qubbx-pfG`l)sX3(M;B!}V4AU#;SSBiTv3C)746hT=cmjudNf?BWvfAYF^@wdV9 zjR7sxqHCdd@u{la^Jl6Gly6;tTC6?+8v#x-V=6aRPL~ikG4ceisgnw?6WuG+`eSc~ zU*O0>JrK9li^af$fH^Yg&8_-6y1j=8X6$qAZn*FTMtKj6W2(aw&3NtDAp3y-X z(7IJlkbK=ZK($RTrrI;!b()F%#>VWSjWX5JkL0gnYpVg4Oh@}7LuIq%*Njx(t0@LJE1itxZ8 z7lixA>LOo?b33YbBqqn^io_%Xr>wMBO07=G}U0=anZh?i1hLrf>*}W}7_8B3jQsEakfN)5{aes4DiHbWl{B4^|mp zE4h19HcSAQywvujW)uwJ=SWuh;THf2wdYVV|wWX{#X^I4&$s2OC@)jYc8N$_5z+*Rr^DJ)BJ*= zT5ozdgWfU5MB#&P2vKNJET5-ETUNDpy3{ZDoK$o;6Ztb$5%;)Vk9O3nK2z@>J;2`n zj0Odw$BAsHQ6|Og>3f-Vrq1LCfkYR~>VK`a`*gM4f5CR=?xIb$J5c{YWNM(ineC2J z?^d=uE|(hv+C_L^yJ%~m{M*}4!(rC~1PN}1jREXDSzk8(%+$tr=~#+K&`lbl1@^xd zFqDItKM?voV0=eYvpcBk6GW^y$ao8x%ERg8?{iZ_<$m8i#^-$=)dPjIB;H?0@;l;U^q<3t?PD8Xss_{|Gtb*w;V9lR%*F zhvFp#IpnXL*n~GQZK?HAsvHwY37NP==D-`|nf=6}ZDZaL);q#Gn`WmHt>P~kZzyWc zkxGK=h{RP9Y2u+Sl(;?56Ex~pjgm!4l$|}7%bnvE#a<1cfPIp?|KuAjCXPw8WqE_P zhIiq*|C84Wa24EioWn;W+z8ZckbN0#>#M~kG7w+&{5Ceh7m-hB+|N@z{dv#DQ`)l9 z%0U|=jW`DnuS+5)k=%g^KB+FRh&+#hZ}qUOa5txZ!Ck)UA-%F9Kj@PI+r4!FrE>Ej zXAw_J^!9cAbHca4_N0^u-4~tTA5Y|8M~(?Z=TFE&fr}4S z`~%BRQJ?AW&pm5+;GAdBzMDW5SL1RJ2j5N=)+th5`9~m@_G~$H4mGn%z5;&|JroJo z1nb)uP?o4prqi!qw2JDu%6peQ6~1v1>AS!pX4uiJxg~|s~N3>pQtbYtyiT!Tyi8)m{a9IPn9{c zzmIvCTcw*LC!i*WuLgs&cCwtW`u6(i?1(NKq`q)h;YK=f%^I zy42jZ(6!WfT#rdw?0gPBdd{)aq8FgvzlB)~CY|V5_}LMyI>&j43ZwlN5(d*>J(yT; zv4czmIx>Q5|0`@0sC++RfNnC zQeLIVr}%;g4@rRExKv@i_q=?dMi6v031r__O7%ZyG%QGXTp;J-yrweq*Il&bzFhN` zJab^F>yRb463SPHCl`Z&7s!$uD%FLN>7&zOTmaPX^JRO&8`OIQJ#pDT;^OFJ(1e~9 z?j4A}ay63&tfT&X3G0ArS+1;a&3XadOzv=<-%Mmt0;Q606|&Kk9-FXy{=qLv-t032 zW?Wzv*cojOY__)Dqu}R5HyQWm%_{hs=mH}}={piB%4@QSiL#GoDk;h*{8*j^%0Kw0 z3LItS#piY)CxU;8i*jpriDI^|{Ix1=_%8FJ0{Zha#ix1R5C9`ZO^&a8Jq326sQtNe zs_ms3A0ji4I#A=@saiG<{I)f2k%%?LQw(YGI+VnV7)!ul*g<`Yno{40E|^ry#x)1Rl{w0gggk%jY!x^qzMEpo57m!;V}HoN6VnD?&Cuap z4+HkaOo(jv4(?JkuoNwz2Gv6`>o*g!g9Dz8V7YiBd~TJ|!u|_k({DyV9FzL^jP>;J zz4z&%@mzljDbLlSpQ zF=X2rOfaW(nlC!k6DiY;mvlawR%OJm<(CLn)v9ZoedSl>h37K^3Y+|zDj2)^DEw&< z4%B#KqyLY9_h7}H{82f5wGM7Q0OTV@HR>h8kq9;$w#kZu%DtPePxVw!Ok4`8e|f)9 zTS42U+=Y;^>?VpB9~1GhZnFo*VPqHGNC?_N-Bxy$&m0KbtCl$EX|>j!DOXy~tD^)O zufsG&KG5Pm{<1(pb82^d^NQTd?BcMfmM)2u3o6HP}3iY2enveCM5X203Mf&H|%qmHQ>^ZEs3ch z!c`SEhbyqUNAL~`p{~0RV~b4`?F@dcN?WcLMbNydmPrPK-#a2}+`_k}auh3D=mgqz z=f!QhiKdB?Fdmqy)MBmF+f?f;*r3b>3v7`Elh|sqVBxXu!p!<1xiF7@=YfM3`O?SM zS#PjNNykcMC*KI(^Zne}TJ>x#Uv)xFh5aHgLjP?d4YEGo_3tJ@py9d{2sAxpzM`fJ z`aOpaLKqhs9}DmZfV8GJz2JxPb>Zg!}?r7@12olcK{<;E{^|D+#iut51f;<%j7okJYv)`KE zN5&Z0D)W@=+c)nxLz2GLG1cz8JwV3ncSOwb(DIU)ewGWGxsehc;W( zP5s7?_Gb)0nI0*3zwAHolkVsNJ7{X3!VxTcciJ))YbGrZWqyA;Z{sui);rlZ2W~^g z79r?`H+=8(bCvWnMlTfJ$BmvaWDaFX^x;vFzEXNF1Svj)2Rlsnj{vpglF4S@j%d}{ z>>o`{t+bk(BildTZT|vkKbQ8Cb1RiBPF3<~yGjy;o!k$9(d=>VDeP;QJ7*5;StDiHx@uDEhZ=-^MW@MgctHcbdCETfJ6WeHoIbxrDR`Y>8U^LrT+ezY{Ea z?r}nAsR7PAQ8j#vwz`*-G3N_aIRKRSwd%p#6Bdm~3^b&rszmVDTgc9Hv*vtWg=Tzg zG|N%dw{hJHevu`vUMtVQV@jTwn%~q#QuIrm`|}n1yeEF$O-x(=AhgOn`z;*xDjy|R zfX=Y$1ZA{P4|*+6iwj?~>>2e_^4(W*A>2x~#N`PjM)voccc41uU#jTf5_laJ`m(3J zQ0P5YyaehYDjWPm?q!6QKni|NfnjceDN>+et#m(Lrwe<@zdTHl{ori>5)S2!rEf~y zKTbMdS?6GVsxFuf|C2!RX1YYFM}5(~o_Qg)zeXf-`}vG@zWSz3-opXfI}Y&yrGYn-C9d{}e0F(EW@lG{We`c-dhk!mK=i3n#)+3XA6 zO3sW{P4}MEPa~L3C$xh&8u^z7Ca)J!Whimu#{McuiUVJ6{Gi_c@;%x;moaPbd-IEE zl>uqdkt8GsCH8FWh4{Io`D*58<*=>rMOJKs^oyLM0ySNx-7u5BZi_#KN*VOyg>(Ska%3cc>a>kXw zFnaW!;uehwCo$3lbIP;c_iZ>%E&iz_!+2{17a-)I9^KPyEjd-HCY~~OZ8HBElFSso zp#NRetyZG~3KWH8miRv|XPmz4LW!^!sPtp8vEFJ!-CSTpTX;4&r}S0!oiCBA0fk2e zk^0@)J~P}y^ek9AE!rXo%mtCR6`38sl=%@NC$fNf#|pGml^?j{8D;0F;K7%;khpZ4 z=Rabv;%o3zG}xmh%kIV^sC-B9miWGV0Nq5zaX1? z{(|%s*WGyiwUf`jaY|qS=Ao<3nLXp2$=6Jt9vCn_Pw#~Hv_7iPjZ?@tyY!quxj##b z)k>OZQ|+~`Xl-SOdG~(aEsIXHDLcpX`81FS7UoqM+ndT9_!U=Kp`}%cYukX{5_j}S z(X6*bxq|3*2+;JX4R00cNKEGVn+smoC!;m4AT?g#D}QVL=>m=J6iV2v?m2XP7a)Y>N<}ToO1SLMQ6_E2i4OTo?t9htcpNS zqT-lID)n(m73;?&K4u;Zv^&3H`R#4|q0xe=rRS95Zi|MbK-yff^k)gF5N z7rA1jQ!COxkyxH6lDt<~@aWE*A@B$P5YTnzwv}rJ=GOeonOhzgx{vnDbdA= z{k8Z^X)Q6X8L?fLj8^yWrnMZsd=pwaszh!eXq>H6hd?xLpn-#(ErG-(ULNZD>qcR* zfYCrjBhfA!yx)K7F8NSqo_a0b`LX%2&y?kC@Gnsy@h~qn zx2lPWG$4dkBkn|^JK|QD54CfYyw04`y{d7R|8 z3n(VaUbsfB-g17d^Jj=sPc_3+@;Q`w#`C3~7$w}{;W@`-_+Mu~l=YEJl-U>2%0!wi z=3V|lblvYO^OABnp?7i`=RP~PL={TIy6~?mUu{CVh3>C$fSQw{Iox(|-M*EbVpeSC zFIb|^%JxM+$zdX@jEO5Gf;6Jza4~F3k9p5O~2Bm8FdmGW`4@yDuD>V5mxdLqaAj22&MBL^7Vg!rPH2*&yj8QGDZsf_G! zXEN|5@-Fj-qfI^fbshn1B7cHgLjK8NR)W-vVQ;LQ2h}Y(h54#?1O1}<|S0b6N-oRPAr6HwOKt>@<2G z{xj8nYa`B%9?FUQwYsAILRLEbM`<}c(rGovX*F_hQ<fHnKJzi3@*h007@}GC> z(9}7DdEHQ8g({`en8kM>6cn6%jRUJXn~ zcOEvpm+>$KB@mtLBOr)A|Mn`_XSp>_!?eINz}RQ}DyeUcmzwc2L;R9NqyYOsRu$hMxli`_TRh>R(Wd89^jO;0mfzP*vVP|I_)-i{)t006wPvTJBzg#;gy^qD2{K1dRP}1q6PNT_ zl(>Z@=yKS}JAe{c4uKq+x&SA{8ybWOW%y)-+Qh{~V1K4wpbysj%>L{MzE)|ARXO-W zT`W4W=uvvEShz!g=5*`+{UB%96H!hZAX0m5YbJ74x#iUi{IXgipb-+enaQGTVn}cG zSiUy$ItFn*#aFLlk5R_A>Qotv@$m{o$BuH1(sxl;iemFg)$3$F#_J6d7Ldl#4^nzt z9F8w5P~o$OwUzDqSorDuRlB<(^YgyUkF~5;N{`@VHnC;G6`B2W>PuYKo8Gwf1;rzL z^vgcFc|Iyfxg~v6ulyF`p9JVYZy42^6d+loTlY57d0d8wChJa>Z1DAp_~yx-1OdWn zZnN|Q$Q+Cj1rx4-4Yd^JlsY3FoXb+nIx$U8Gy9{gACg1Ft}5B?`O-9PVnA~57Mi#A zv^WiA8ub^>i$joXFq}v#od>gY80-r*2&^;JtlT# zL31*?dxzD*WjP~G3-G>BZ+9Tg&XjKagC}q`19ao-+`|rpLnjJ&JK#KDOA|vFBK4P$(1SPZt0ws`L^!8p@ zju1b0{ShI?h2F`bYWfWL?K2&(F> zHfRRZF8EolNmrY_;^Pw>6!H!>Wxaa7-Fv!~31@`d8ACz=M< zbXDIdx4t_N3~Ms}hcd^1SGwOamzMoEcBInUWMR&r0<|y=K6esXTsU7O>rYULgNKyW zPB=M!)})&=epQdV!XMux74agg+~AB*0S8*IVCDO$Eafj->TA(r^U~v^PG@|_Ql~pU zcYo!-DCZ5(c=XFLnVY-?(Gr|72ly>|V*DBdM`Q^uoH->ctYG+evdmdE$`KXf60i^_!EqbpK7OU;FMm{GZrN4*Y-be*pH8iLG!Z_Pk_| z2RJ<*`JZ~+S9+Y4n)lrq^SDfS&#Sg71JR{_STzF&^Jj1gS}l zWWHsc>U94!z=ROr?7z&tSIpj1@&JW1tLN{@3KOVgezW2K&|1lf$@G8N^tv^JejKs= z((9jTpT(9q>HGIMBMm<3Gk(G-+Y5fy%@eGO>p@WEC%r*3dVbN0OMJo`-HKLslqU#Z z_-dygqD;?bn*h~yG~AQ(LlhQ-JXH3}Jabe5>+zLkO{Y>03s%zQRDl-%kOd6jN<JElp4&p^e24x% zK^9Ss`2afk4ljCQUY>PoOIsUM^@4!nbA$pAIG9Yp)yrRd5%@?DB1I`q}7D14V` zYw&jFNB%*@G8EA5w(G0qkTw-5M=1K|D$(y! zU=~eoU1Tf9sk~c8|Fqc5G`)kK7b<#=__)pbgQ_D*#pfrf_>`&G&Y^3|=(DPx` z0h~MZ$T(P9w-QGttgu9Gd{V7-MdRDda^j_{)kyYZtO1AI<;6PYH7-$bm59=Cl)O+b zZiqLNxBz}t!C5JF$Ucg;4AAcCDixYYR-$VQbmN{4s!G0LJFsmNQk%AXv3w7i<%p60 zQH3mU0{YW7%_v-_-WJPkkC9(HLS>0GN;kYg>7%RTVdOt7;Akdxs=PvLmE80!R%cox zfA?D|Pfp@|cZqt7&r>DyS37ySlh-J3M*i=e#4#$d@L4A@<|JBtXXLlNNkPVN_Oxh) z_2WO<21PQ{B2V%E!@)o9Q1T@wTx=*h|gQ zUBer2-nR2L&G25xn-;qXP*mqNV8BB#SQ@0oiYLa>qS0#o`6iLDib)T`4T>UhI#wz( zM-^$yFCK&@2Jyu2mP0Htn&jllK~{^+rxJn{af*GNCr+`O^h9{epe7VcvLrf5>@pNV zq6cw9JX4g3qIH~HH-<->1<`}q0vBTn5Fe^&YLXW)#&QfC(;VHkLqv=;_`tWcWR7`l z>le{)J%}&rcY8Z+@-2KoloY5bvMgZM;^~Y&wS>;hR@NP;NQaDUq8tWt#ui9Qqg0E{ zhXk6bT|{9mc3Ap~p;lsaz0hHquxtgM+b_Bi2VL=}p2vm8R=lawOM13TpdDC;p! z5UY4SGZcv4Ixj2SogOTd+~~Z#-demtGR#_04x&1hJ6)d11-CUix&7VTvqaU3K^8#~ z5I}`HGPQNowQp^%dKQ`=-OYD3Xi-t?()4#+FB|_jk?)M=%6%ItauG%Ld4C1)Rci5f zcv-^5)hY5_bd`v|v%<#&8fx9!BhDPyH;#YQ>inRPVIAryO(*Y`zM=qm>Ze-P zM*oXNXp}CI1HAQnygI=}EV*hDi>1XLVDVgUW*4)p3bxUlq6q($okg39TQlC^|R$cP5s|r zPYr%#vh_|!ZQT`T(1|kXM5^@)Kb=Xn{`4Ma@Rwhu8ea`~xI^E|qiXzfd7$wejz@;K z@x=n7P96`@0h0TmM!w(RHa79H2p{F#Zk_M^Zt2K<8zLhF5Qk=ow~XDR!OX{R;|iY- zJE4>5+@w>(7IF;l4go4E*#DjcbryjXDi#e^??GT|)B9@~ccS7YiqeT+@@Bn3K?fI8 zA^S+Gd>!#dLCwLMbDM?H*`}Yw@56 zVH&&v66GIZRsQiB`KI>;eoFTd|1lGrciDohWLDp%Yg7DC&B3vsg{MUFgXYy(V@&U( z1hx)pZ=8LiSx|HE7m~lN%ACo$r*4oFl9)<96%F>TT(8U;EVnErllc*=6mH4N)|AnO zXvJREB`fT;9)&mLRi^|!J}9el$ul^C6tG=uad=51jqgC0i~D#!Q!3Z zQ|1GriOJqby>C16ee^ua>=bAasyQnH^dr!X2d^ZqfWWFEDEbkIlXs=Ks`!&Ys+*5C? zod5)R?59+U@I9))Z1q~1wR(uVs;r|#{z|Stq-AR(JE_ioLYhIptE}F6&zEk<``?}S zT7gY@|Go3x%)6TBhxaqj|Ktx7Rl3xfGh42JYCi9|ziq!3JDEO+3ROkF4WbhbUENsY z&{dyVD{O&%SiVl=Pl8mg5)g&Ce9jNrNmRVRkM-VIWp7>Co9oBfPWC~c%J#1(dxevI zie%sBWPjjfUnJSTak8@|yVlA6r;~l1WZz15`g|h%D?IZ%=XR6pNauW>alN4Qi;^{h%y4>;7S_bN zNgdg~jeM#c6^YxSa5*2G&GDBN<#OJO)1AV(C4tFZ?hbmk4sF{d@{5%tubCa5GbWQ$StU8K3Sxt|pTOWV(HL9)~ zufOi*sZ%Be-MX~c9YQ>v9=0npB3ULrR1D&EZeSu|p7hNF&dE>gYl zZ#MELl4uu`pKh3MRKvGS8h*{>U(KZ#Y7owO9KGpz1+%7T>ilQs|IDrPaCCEas?JVQ z=N4e}XcObRbV6C_xv4szrkMILehRZ(Q}QZP(zXMbmt$h)_kOh$cs^n5?p%*lNnYV( zR*t)I#@tEc#;H>AOQh18c^&-&C!LF@k5m(0X1%6lnlwS0EqX3A;j0-mP9JxP78?gd zIDHWrGs(d#MqGql5)JSYy7uY9*XI+2ub+Rh+ zx&uu>ooY&e__uUs=1%5<`jI* zxMoVAT-UUC&s6O*RqZ{fy+Dh#fk|uf`%=5yfZENxss=*Wgr{FRbuxVg@YB1%g_&0= zrmvha$zAqx9r2gwxu|)L?V+Z9-Z$2Z(o{_JTx#+gX)UXg2E-p~Qmz)Ya|4NaY`X)! zw7Wz(H<&o-1!kXJYX&{AT3~|t)8$9X&V9KTgsYJvOl^xFNFniNVFv^s%(l2QJqv%`Po`DMFjuG4}!fbtM@E0Dz=hlKS@b_ z<;+Rr6tL50Jk#Do8h5|6FSWNuH)GAnr-HYhBGJB4YL|UJHbmDyReiZfm9GA5Z_Q>A zt)xB(%Ljw`AX;)I?d`Dp@my09;+YBAYYSg8ja9#h8Q;zhs43~GvKF-2Ub0w#30iz8 zc%i1`aJ~D@mr!XY3w$oUlydaIPN>)A@+!-H2e13Qzo#He{A}g#$K==}R)rKh^=8@d6tqXE-C?Zy$u) zaN+#i@LYKs0bbPNg{qiUM^_in)wd`nlR1ga@Eh5FC9g^r!?0J7#bgfB;yDqFx_KesqKT(Eu$zn~!Qru8|y>yfNg^ z4z)d_+6k%}Sm^V~*ykO}D@g6fbwl#-8C&YCv+b;)6h1Uw_>)RgR!4C&j8WF#kg3}#RWql~y6O7av#;09j(T}P_!7AX+IkJfo{gNd-3%#dFi8Mbtt!7@{oT-sNRp)miBS-0@Am;pU z`cuy!qdUKgHs&q#zQprS`}0JyMD9ZGgHqyX{gI{X;_Ans7^C!J`ea_DS!i{BG^zz% zBQ^h#EelUtTf+JO{fDtb5S)Od8V#B8TUH1$MMV>j9BB6(Y|}M=OAtS>ljWeF{{TN| z2%BY>pUy#?`1K;fHOfw7L%=Wx_BZ2s5v5~25$h`aDVOqi_h^tfrHQHzZ4#qYG-M2K zHXm5eaaF1xp%g=;)`=~z+JE|v8=K8&fu)CHZ>yC;lBEhau-ne!^_>c^0>o0pNWx< z=*Ge)nJzq7Oy{1BOs%K)06(}nq4eJ*p<88d`Qo-~W&C5VCV7!l?sAo~sK0#Quy*G0 z_fWRF5t@o`VUaE<@Kv2(xaQG5@GNc?ngxpFYF*ZS`Je~4Oq>;;k-$(JX| z5p%Egp_}}eD!JEsk#|upuV`b$+Ff!1uoC`-PYNF@mxbIYUwwUu6p^GqM^*qYHsJ+x zdP$q-Xt8YA>JinqR~+uA#d`9L50KUUC??2%<2fgM{3=#6E7j_f?^LVddj;<}F2|=d zWQlKH?%WS~WtH*kd(3n<;UOIvjB@9$IoVwUk6i)5sMT1}n8eZO8dBkke z+P&_GFA9+Lv1A(Bty;VqYDmqcQuC@K%Q-dAmkCN#>>?&#$T+N)YW|}#Q&sd?CioZB zpzam9pL()@LO3tX-R4I0rr*}F_a>WfP)b`5Fm$=9Z2DHNvHnYYg>VN)kKeUez>5Gz z3$4m%;g|c+GE9UJ?4uYj)(DX&g9)5DCj2X`lOKj;7#mPP-Li1n%>GuEmp5ej#v%x*Zi_5wi`2E@+rkVj4VwNZ ztq*0`C>krnNikF2sKp)yP<_$QAbcMKJ3jNGJdt~?DT%hjP-{A#A#}(@89s54k z-TU`BD)!e3Zs9i!Ql%QHNEYEQ-#Bv^tvg<>VgL8`9?AJr4nPn&7i&SY;=t{owCE?z zqF#Tdv}AhUl_cYR(Rg0jvIe{Zd(~7T>po5Hr+jAaa`6qa(5Dph#cBXQA;g=P0cfk6 z6Z782{IthRu9a{!G+^$gfcD1&vtQ-g$oe7uBLDJnG3VGuZ1nW=A@GpO#5Yr=+Ba-e zv2wO0j#E|e!!j!SETlt zo0TZpMRLd-%I(Xewgih+`^}daj`H|H&w`VE|71-V{bsdaeSO#CRMvWKugrXX(6ehJ z)WX=dh+%T?TIcbZJsw#&rVRy~uZSO&CPGKacWo7R&)BbaQUM(nIKbFnP$OQ*1OqKm zDvb9kNGRNME6b25+gr?bJ@mC~KnZmc>DW+t76rJn>=QkBSi6f0{5B@h7}Ll8C6DdL z^U9Iq*#MHaKB6`?9-Hxqol}}#M%8=NaU+H z^S#WE=131-r!5MYcND3m?92C|#Iz#0t*&B;qYDbMB7N~4in0b2SCx5J7W1+^MzIsq z<8O#YBjMhg-lE?DYQLoxHzv(fV5ovm>#Z;U(N;aLmHjXe>=q}>ZD+5i zdO=&i$UY*xOK|rS5Y`6_43!@N{&)p7c1E;B-)|YO; zjx=*_0Y@msDOD+p>%54muez^kGVnWNj4Yz`T1s1IpqT*&GbR@f=6D6-WzUu>4(9Lt zSWAYqAbqKrav(d)ewX7xhRT(a-$rll2<@tpb+*hrJtO^8mswA^EXK&l$tMl(?#PIQ4m@4Gv-w{f2JER ziSV%ybu$zLdEA4lgeR-Yq10s+4K1v{B0I`6CWtRXxin_cwF=n6>Xd4YPSv$$Bk#I7oU7dM=Sw>EXB-Jr(~c|ONYycYdNwKFGIuF79$0RHk0k)60epyPOM zP!`OFQq94)j_A)=OPB&2LCCYKv=gtxCytbi{6$>eNbjT6WagK?C})uteQ^HEF9;Wm zL2M9yRCSl_;q z$CF#8Te?gUWeQZ86DiYMl_{0BzGAFyTYV@~q{`qc^OZj7GOwn~^rws{9+~=Clo^yR z^HjP_C1omAnIV+n8j${|wrbL4bjn<<%2ZKidb$k8H_85tq0CHGCP}bneyUE;4mgqH`pU~SONPk!Irl{(9x_^E}eVe)_Gt@>v2XAFseQly{d2_p)d0q zDtl8uS}L+KAU>!+P7I@m@*^)o8^EQDGxjqIDQZ94XMze9epxMFIc6;OauS2s?XIq* zLLno=_5i>VAP9eV8$x~egFLLkU|noy)yTxWfn$qUSaQw({^x>IBFBuV9x^0Li@l^O z!F}+@)?KQez0_mf&f|rN9z%8fI>@b3qAD9eP4SG}Ig5?(_eZl4{+__u#+H&cWhE>f zP+Vhf3kQRs*a<`V;JV|Y97h}@qCl|OHv=qcFTPFZR98Qju5RRwnQ@8|B(K2=s+7m2 ztgsy=xOK3D5R_owSM6Q=!vEIb>U^~_K2KD{Tg6)4dnZXqCC*sU3fkJpVlRA=QNtQ- z_#0>J2J3n5dK7nmuS|wn@-fNiw)jCwZ7PnHQhtEbw?4%pNY0a#4g-A!Vv{aN4Scl7 zXI@4uB;o-ly1dDA5zlw4Fml1Qy!Q6xT-L*V#l`om6RKD_|1u0NjfyvDugWNSiy!+j z2)=mJ;LLN~+E!fW?6*#)lzZO*DeR>R?6>+>91=R3$E%*mzwI!=gU)k^;+mf;qB!OS zh~k4~Ep67<%vT0A1Yf4;6^;s%@h=|5)i>vb@EGz5X(=HdZh}#O)39E_IlRjkWWasE z41WlO?+bT?CLG_D8BN0UHd&m7d_;ZX{^g`xh9>vKG$H>)XZRx4>K)!OgN=mD+4v(G zOo{j064njOG}_A4|3Ub)MZ|ZP7vXEL?Jn+OT}ZYxa+lL-h?7!(F!omw1;M%pLk5U9yM@RkhLu$N^oT%w(r&^C> z9;MnR+E*)_T57(cErciENDB3~-RRUCxxDGGZo5(G@LweRCpFIw9MRcY3JE{nf~?Ak zC!K%a4NiUGl_`A^z5P1Y?tzb2t1ibK{3UC#G1A-$kNXde{vt?NaVJvXe0@B2)6JKw zd8r=OpKBgr+cu(@?y)Z3CG6k^|H2!KJINnB61}`ol`GX^W$AKfNV$bo#hrbFHiSFK z$HzjAUlu>Z)x)@|+y}?wR{7&jr|2=h3n-OQ_)%4O0CX!|c(Yr$OZ&o4s={2T7N$G# z2e)v3`@&09VJ;otPS+f93wLc_ShQTLhn=Uz9!wY3-NIV?!g8#s9(F#l?bC%%a0?f- zFI=Yz55iXxJcK(NU+-{cqg(sJvKgy~m1{9QU30x#xVtKh`zzQ5XRhs=c~p=U;^C)| zrA3&xZ--KlTKlw^J0bbVL+oBCQ9(-A|K`)BDN z^_}k2cVDVL(GPI@*ZJSnx1@c2yCBd~UkB~3cO6=-rRtM-;ck7aB=0EmH=%uf;(tTx z>!RItr&Hg8$;t5+s`{YcKJ0)vDQ?heucb`TvlGMMK}fbC7uS;@*AkRi(1s!Cgqg3U*$SBH)qw9j*2xQuPYK=vu6sJSWPYxmG6qPI|tR2H2lzN?!+CPjvQlZDR9Zcg?UY-~lT$7(3-AhCAI;HJ z;-69doM2m3${vW~MsGGyAj(=_CWTY+pBk93} z@^Y>%_5srMVX`tJ%{zYpkPcvrAXpTzJ`(yYD3i9 zjDK=+sWjxQ_HcQ!z)MK^^A|6b4)GLIn0V#LO_hJyFF6^Tw7rIx`Xu%1vS6dWRU*b( z@9TCNh5$Hmh!$q7J=L=I6q{qfPNJD?pW98!+N;uXS$xztoWv}E5M@#A)3(6C6Og}% zi>lE?Te}?nhUU!rS|EFTD38R-o+9ugpPhNv^VMwh?WgUZeM+je!Rt8Yu`O!cY0xd_uzG4>0D z`>MjDU?=JA3v@9w$cj(DOcniyNX{yo8q5v^4}&TjkTq{;M7UqC&c^2K5HwBFLvU81GT$X z7dwe9JfOJ@RABVx>-y|oUFalU=9{5R;G>S-O^3bJA~*#mVbsw?hyB*jnI{+JKO9i{IDK`Z_ zPN1mk`fvasdFzNC?rZrbM`ULVK!Imhj7tl9BCClA*4ACb{g~dC58eBNGpHyzf-=df z!$0+^j`%bv(-=Nlb@=|NyzUQ<;MKqNl{}3zGe6lj|4_DL9Q|vw&-$I@xFOKoM8pe- zBz-l^HUHe-OM-kau#BAHpLvQX6dKc({Rmzb5CXs-@{>qG`o3SiPy5Gbz1{z?>w~#r zrY|`G)BUK8M^1PFuZQc=dN=JjV`A}*!{V#@BnK~GL+Xg6%SokO(M^7p*LEznx>WyW zlmzVQC0-A15>*8S$70J%6)#DS9@za(T7L}TJxPBkrI=GQgW4iUOmL zGDl>bBOX4iijisRX(YwgFMT!YZ6H*K?u-ahr{`|ghx)wh9qoGlF*AA)irkB=uvp7g{{;(2q4GwdyBG(1wx?^X-=gW>7(fXn5e7yrO7Y2Ae z>(E)Yy}9vPFkAQcZmdM>)EKQ^z!g-f3tWQJehaQNVt1mol56&eU~^-o&7l4eCo0}^ z*7U)t@m&o6P5p!M)R0f_p&q$hD9$mtPhGGehxr@%w7nI36VY74@B3Pl zuW2zr9l>+NZ!9)xo|6~@6pk6~4o32j8Q)d1 z6YSZ1xmUP?hu-c-efK4qx$^1Dzwrh5C_(BJ^@w?hhl|Ql%Fu+qHqx*>drpj4^}2sU zjwOn(<8k!?S2=jKt^WNRwQsrF1b0^8obU#1UB`CIy*Sw<9@65L9Mk95GKFDGDCWI3 zd8!sZW3N$c^aJQ0b+GAS>~uT*xf_f{wLe!3996(w9SD6Cx|R*P_L5j?N`%r4&vCWn z$1-8C(bM}|nV8v-(6y#}{MM7SR!-J-3MNjc>1Pzj?`ig3Mpjwk;0^!bv~3H&%4FZ@<(G_+2LRDB5R1(-u)-` zAD5ec$j*bq$dceSXfrE6M4yzD1n1FUx~VZW!1sU6(VFhx*>NE*CtejpBL1qO;??H% zMyKi56tZ}t7L4%zN1d|hPF{k&XE|H!Cxf}Q1!GupFfkvs^B#a+MGm8lm>tqLkd-8q zu zlgAx#r%3&chGV+Rplf5B$I?z*X5eVzjcpwLtughdYO^_}3)rx=z9I^n01#2wX_@e< zTtb}LA0~VG5rAGpZ^G$ZNYw(8ngFq-kbi(5Kd)G zGkhY~o@j8=y&zogCWo^ZuTJ&qG0Hb^|IZlrS28M(`HkKQoz~lM40h#H`KW(t`g~H< z^kYV}(q_{hf9r9OZF`?fNYcOVXY6;{bt#|xztJw`PV*n`HVg`U>R_7Rr*~q<8WzI5qSarjOWY zavZ1}neqO7`FoGw`vv_hzx*xAkym~ap1Vi5d$zJ7*CY>vo4kxjKJq1Z&uh+#*9&gI zD+IUEs#jU5Pv9GS4TX+(2PmmYfvw_KYf=YxyV`+pyg7Ma$(&QPyV}SLdtR%JtO`rk z4tl!AJAWI_r-Qcv#f`sMK$+UeE9qjfL4J)#TJrpDsy!CppskL=8IPH4t4#R|dQ^^v zQ_fZX!`%2r-Y?K4DmC5(CEWTtsPm%#vg_FA@%0SS)#v$3KED2<92tCNbls5uAl+5B z;z@?0#p=P5x!aj{E20-08LWd*Z4N#+V(W;F-Q&}AQv6#vPNi-w=!`ili-)D$&c?m{ zZaP!~MZc(SH`xG~+Q>5|RgN@n>c~+h3U5HHV67 zdnYv3eLt1i^<2@3eXsb~_MgL&P<3c7LMbu4>In8u9I;sBB5+mPVY=Y8-*~FreQ{^R z>!lH>Y(v#Q1?s0nxTuu}EmBn6&#h?V{2Vd3#eSP&$phRm+JbiGUrJkI-mOpJ&3Qn? z1Us|+#&gY$7~=*<@rGvc89lu}O4|S}Ci2QcB`n}>x*!%=^Tqxr3Uc_9i5jLbXfqF9 zjyF$1S*Lq9t(y65w{9as;2Lc}Ci@d+z+kF62UFS_flcNGS}U-n=BZRWn>p}~$a>fL z$B`XbAoY)16#Bz|Ak>{H)CpfZBMfg2zFq`h=Yp>q9yHX%G6i2R3tz$>tK%*7Lk*j~ zPe_|J$W2WkKM~ZcUMvVM5-w5$zIqL=&uhRYHkv~VjE$xa?@s@W!}01#4fyD4l1)sW z)M~7lb?%7zA*yk)Hu-3+CzZbF7T#rAuilDAQT2xhQ zt|C=vRpar9&vTpc(Pc-n%By{%hAYJVvMV(_#lvFlt0I8Msc=bEvi6B+*(=`K_*>l3 zhQ7YR-L$jTx$otu^UKz1$(Z%UYMGI7E1Mf0N03^~MdAalURqR8)m;4mz+v>)wpDqP zpSZle@E8chA8|iuZ(prCs*;nRppGS+1|{ZtvU;(ztl@D3_n+j9&fY6edG1W22eS_0 zt{1%AJK)j;}*ssm}x3d%+T=7jo zK~85>`m^}mu)H_=SOKv))8lZ*3<+bH?9U?Od|69`B2ds?%>|cW!Qe(sPUudtFr>Ue zR5&h-ELYKlJvmLSo`0T(UA>vYYZZ4~_S<1LSjX^P8(X7+6nvML?0nZcq1cTGJZ!bU zZ3YhnKjGha1*7Jy`022ca$)fa+FDRaB?*O+gi?(5(Oz&2Z`4tLv=Ft8jrQ)NOuy+Z zC=L=vsuLba?j%`w?a+RF{Jt;X^Jzm`Yer@9xOxGhM>U{s*%q9P;;)_Mw(aAVp!L|t zUSO9Rm*6CgcQ?H?Vk6`R3GaEylHQVZ~veYqvbG?ipx zM;e?5KcUSTer>TRIZWXys+zto>Q6B*s0pHy#j+SFsgn@A7t5bd7Lsm#4G^ z0}j=hh9&73^@M5L>Lxmzg{x!gJ1PnEaBB<)bAO5Vd-E1ojQ5Ox9u zHn#PO(gn-g46Q4=Gx35l)Lg`v&icBcWGPOfuYt5D@mpRPio~z@HAEZo8c{B+<^c$I ziP(<6jKg-~F```j$}f6Algo^5boWz{20~7+j?|aedfRXk2o_@2&y06C(c*7MLIyZ= zpWAOA0nf=q?COxen5gc;&`n^*;NuD&V)0LU8!ps+a4a;4Ux~laPUcl^Qw>|>#&NRu z`VP%h%hXg_5;g0wB|>e17#bT)#z3dgq)?+qFl zPM{brWBMI-#a5?VcRpW19>mK95%F_G9$If$B6zX*^SES*iO>lPFUt0b-^gt?8GS9| zUy{B{q5m+LVR)~?7oT-Ux9$S=T9&Vq!`XALw{$U2dF!7Ed(oa~=DRSV*cD6hzNtx8 zj;iq%J-}ycz+S?W|8SeU8xwl2Nt#4x6x-I_d~lkcIRQ43Oqj}&Q>GC;t(EVBT9cZV zBcJ1(iy%~OT=j7)+g&v_QrfU%^vSs4!@b%QcZQ`#pXfBPVqle6#&xB5so;$4wIP@s zX6fHJh9X@JRP2O5E90n|Lx}4d#VFa?xUZixcLxaNo}BBVji2IWaQQ(Zr3cme_Jn$N zAWf^~Tvg&_^dWBHQHu6l(&guz4$yduvT}&>5ME5~pOU+_;J$q@wuV zhNtxRy^z6e%)}IhO3$#-5Rc$No+!g zFp}ST9&~1;+0~b1LL^24!CAdg2#TEdwrwq^y)z;;$%R65_rclqGbRV$QQvIXLu?$U z=`K3p?K4xM`%tqEhEnukv;OLy#OSEOh4q0ccKSCP2ud5$L$c396Ld=9sMGlwn=D>D z`p4YTK<%TiaheVQMLDhG%-$k{es72|faQxNzdxSL`QFai_SQNpuOL3gj|J1^FZ6$x=xW7K@|)T56%)2Y^TGrbIh}r2n~CwZ!SC6J z!sg zhV4^fFdC^~BW)1P7h3wBTMFhH?F@{iX5nivi5{8TP=9%pXp_Jt{xD5}4!6zcir%ff zEZ1py7NMH54qPgA)Q;sJ_0M%;tK1dOK4brBYtY`q5%V?%gCyv(uL$+rO*^;~PZVrI zz8O}S;Sfb4F{*7|@eLl5hW)v+t?OT-To81t$4n)b*||?Ek_**2d9Uu-QbRbwiZ<7& z=`crG&+8O>b=(bZStpj-13`p1DjSx|tI-c@I89N}=FDGn7yxJQz2_Z<=#DGtx~$EK zGCG>!ElqzrjBlZC=^0qpxi)c$ zigAR)+gw%FQ&YAVOriTa=XIK!nK#Wm*!2vaY|e<~LvS_%<%ELunU}au=}E)=qh%k1P_a`tmFRqf4tVdND)McyzFDH{E}y!f zCUpZ@>Q|RMw(AI?%<$_8slgwspZ+x~aUP7k3q=pnH5S)bC*G{z8I!3d*|&PcJ34By zlA{0`WS5&YxQO1s0*tEmPd!`m%LOG|Qgo=;CP4<+o1uv+5R1PT31Nr%(=E1ZIu$m| zXW=ryZLhfevex^E)mgo+N*aX3D%c6=%b`wt(kA7qEy;xs@WWY!yUkBR;}e~fTxv07 z)#yR<kEPRC{8NQbvo4-B99u_gQ;#z-zgudy^;WEbNp z5Tx`~7j|Ua)E$Qi4uK-E4(RR+4xJ|__Dt{ww{pcr31R0Nc7`1tu^ak&3cdsPGTrna zeH6Dn4F%r0*VExQH418-mA)nAT`XXq=}*Yd-9XGL$f;%O(bQynHAtFF3~!3IOT0qm#Q^5R4g}jx2TE!&}G^ZvY*-$0w5F_CEzV1rXXOX5c^_IOM5gt z^U$JkPWP$Z47Cc0z@uer;X-AW>(bpO-Px6Hp|_qMPcxM_nYMx;)0REl(%R0UBMxE4 z_PpJFARgOp{1w=>&l#p04$~rFPAs_!5-U7GMU_i+JDi+Ks{v#jKk zBk|F9&A?|5^G;S)i9S&dVvTrn1-c22KSsVY0+JEtB`CZPr(Z%PS>fk0ZgG_G6Rxw# z{&!)F@LuK~#orU{1&ON~nNT|I7=CSSnuoy&l+(JMD>J;qw_KUQUXH%}9M(?$&5~q$ z`=yd&QonhGRWh_pEYAoAdtTS=Tu241J!yF;{$4o;LU-3zyx=q`(k(K}pJYeoZb43S zevq4IY64iB<0+TZkDs%f6PH)Z4sBl+?KIHfL^sD6uAaVP&-O3=D8by-)6}){B-L z9LOicYg8bWL8MMRNKevrB{uR>Td~tgtm6U6A2*TvL2ITn|5FhwCJe z$Q|>_EjeR&ZR!ffX3Gj%!t8$vg9djHoHmS7{w!0Z)~P}~_(oN-#SR{XSO%GEwAcQg z!TXrYG_%tK^NVm`MCxuC7PYd?{+gyRLhcM6j2s$@)84A!A#$_-nijbKNetEuZOYh!i5!tX8ItPUb`H{Zx9zS!f2 zmB375WuMfRZHlGNDUMM=%!xhiw(Tv{xzgLO#d`y-JJh$`yU$IX-~4GT!m&Ejb*=_Q za{4N>E@alBm}Yc88x)}Xgp7X037zRm@AOikDNVk<&6f!S`@R;{+!~f42 zOtZ2RFw3>Aspd6Ya)W*R3HkRyGVxr>scEb#Q24&+sQ!mJiRtedg|OzU2sXD653}J- zw1wb~UAguhf@>aBtA&PjK+8)FN^$+l1{Ap@eGkOPAL71?LZIuzV!ngKtn ziEIpY`R@^-?bGsx$7;Onm+r+eF6`^x$qkr6DNVr8p=Fl6#INPZl6cJ%Q#~tXBo~^A z$oW8d|!7rg(3hA!6>NN+Vfjx>p{F!g%D)8y9>fp;$KPR zcffu8rWcC~l9|OK*hG(VkRLd#ew-`4E;;!2_>K#LePTLhk*Y?DaF?$L7e_N?hifTF z{YLtyY`LFj-O`s|>k*?fY*dDYt9Vtb`l!jW@#|^WJ5=w2{AdNOPgX>L=U9-0C4Vv+Kx5NGb6BW&^L@w4i{hnS>{~p)zCXM)sup3=| z7QivRRG0a7EW$N8+7=vLbztfeO%wFE+B$6XuSNVHz0SacZ*Ns0YzEYV(7C96X zq{LKX&Nc1P_}WV6P}6#+%=`q`lZGD<4pGL8PjH2>JN~2J-iruz?(^DA*yOwYZ2m(* zG~z~mQEbn@LV+*X)~yDrM6cnp+fD!{UX)B3*iqePx{;z__ z)>wS)5b&w~VlS<~4Cmll6o9(!d}39z6EViXmI!nYb0`_0ph_DKD?gmd!I(OesWnu4 zOpCf_gB0Nt#aqa8rQtu~Xily(3VSsjaa!&)dP%fxJ9PU2+RVmk_QPlIE2u=&oS#BU zAV>*n@6)mbR#-tYaks3ssUP%uue9wux^2f1sp7B3yUr@>jQ3z8Is=9f?>W_(w}-ln zem{RZpK$mvmq2Ft7y57)SbacEvlA56v)#YU1*hIBV`Wl~aHSv|UXHd6Qon>nx^*AY zH@IXtyGE?@2X`@(#_gaA974>$#u`*=*4W_J@EkGZ*s4x z^`2*+#PAu8(2jU_L~m@*wzR(BR=m%>88p~sA@;abT1P%=%GjRyL`!r0CCL93W1|?Y zS<=25Dv{a`Q#(f=yiSf-azr6%bY7;W>H*CXL#mtJX`}=T zN2Oq`sHACZYi0Kf4E^=QWEOaV4mO->vOsV3gKC_XR_0_3TSKg_vl@Z2?4>BO$<`PF zzrAO>*BH6Q4E^nZ#g`I9Fvhx7Ab;4`)ng)E+Ny?l)-qxT+Khg7v>PU{Ra2ch`?+wb z^0tI4S)y@g3~t4iA4*JCZtaJ<%#rsKyAS4kBGD}>ILZDo;&tO0<@N7bb1x>A zuooGz$u7qJzO6L3jOMZ(F^vsXkk)-lX1&D$4T(HpQSX-R1e=M>C#9WH#ah&@Rx+HR z+a0#MY6?2V`?8uaQ5P)-xmC@^))hR3=qYuu=~!t@d#`hv9-_M75Z*$OJ@_kGA{}TD z^S3ft@Na5*f+K2NMK8tsF!t%()R^_Jpqh>TXb*F#GHnhBZ2?xlmZfqd-ImO><`-71 zdxl?s?ra#f+MvAa_;cCQ z%4eCdsQ2MK6!eo^GPQUFRY*Hys*Ko*u^1Qcq6@BHPyLsGw67M zozj<#T7o6gX?mU2#920kd+rmsQsVXi_qzKJ2p z=1_c0aujBA6n#F&EjC9{CP(q-b6jY16lZd9VL^T^ibp~%eKI+aY4URnwmA;Sl#oXlzH_gAJjZQgP^B$$IsM08v!ByK?XxO{pzSvtLm@+HERw0HN zKAE;jH=jX4c}%Re{wrgNow+zjqR$w8F-B-7)Yyi@rL3a|RXPh1Qc;0K z#kA}50iK@x4%o-9|KiW!*mqJc)Qz)t@u2bFKx2O)K7fKo@;etS8If=PKrI;Io|N~h zL={|mvf^^sI$FC~jf`X9ji$ag-+QTT{{c01xKwV7Z$AseE^`Bx_=wpji?Q(8mC`9& zYJ|slOBbavj4m;?r9=uwN;mlS2&s&lZ~WG_o&xOiRt>jnFg*T-0hr9BcT{YOI=^p= zvReuX{96F?mS?waw}0siv~d9fBn5Ji#Z|9P9%h?cNVs0elVLT@2viY zN_hf=>eob(AvXRq=0+@k!+aW_s*6JndeZP*hY+12+=CP@B3*EYPZt{_5yVN&q4V&KbHpDi)SJRIU zFBQ=#sv}C9({uxUWD^RJBlrt#Pb+|R9n~!Asav1hmM4TMpgioiC~>QXcgitRp>Z zKV)iXd_h7%P=Mje+J3P1MB|^G<;?$3!yxDAQz#XZ6P+@0D&4-@0G31>vK;@~<0RHt z#}CWuf)5$o=!&VL1_rbUga_|Q5VIONa=p{ENg@vWEl=}{d9fhawnfBVo!(D?`500Q z21+zER+R^+Iz!QNG=Pp5^UWXdJ0p(iIXDViSkB}RTHtlk%(%L1e^ul;w+{P^)m-Hc zjwWZh!j*^t6l(;8R3Vg3!qHi_#^=`Xb8xoV6EDLT3e! z$qF8hFhX=~*_&l;VSa)Xt7c6lzkJwU#UpU$eLKJ9vG`}~E*#3o;7Ik z)PN}uAuV4lc9c3Tc-~0Me;orGJvi9YyId-5RoO1Dt>K2S(irF9GJUd@Tb(x;s$SWi zhnqEHcQ8yJckXT~;2~8y-20>qFCqd_VR~4G*ZsS;KfxID27aX7W_j9UW7@hxj z1~u4*l7av2G%Ug3?3g9sY=L%aQl~9_&fu(_5Q+XP+}=QPk&=I;^*43eT{d~~86-b$ zli&CU$uC0IBu}@=)A;f4waHH@`B*z37uw{9{!Q|2BwHUtu@CGH8u;K(+Hp(`SfE0R zVhqeOqxuUGPB3$xfJKl3aw%WU%Zl>DhJ{U+bhm@ZZFfh7A^+{1Cs)PPfz z$J{rWI<3v-xlnoDddu|LQS!YO#2;<)I|@18Zj*NrmUP8cHaTvSPge2+HhF`RCo^a? z|8kqW>KTB0Hu+&C|J7ow+9n^%kAIa-{*{u?vH1RmP5!4!pJS8jmHdFMyRS|5RQE|X zd9spgEpB{@(fP}Sx&b!%+e%(yORuxZNtJ%@P1Engl-z8S|6-GG{SL{`+vJ`HNiMfd zOWNcCqLd{zd5e-yw#h%W$-fiuUyy9i?o7tL%AFh4yz>!ac_Ee^Gd=L20hL zG50xiep78pZJ)mJBG%Y9>WgC@ z2SxL)Td3y1NGS&#(&sJ1t&@f>-J3Sx%+i6}*ER%$Ud2US4UdGj!N%TMoPX&g)F*n> zwbh;7_xZ=&ts~-9;d$?=v)A^X)wbQ4I{U5OS^ZveSI`CiG4fm=-S$>F@w|J?ywqjR zL$Uu~P~!I6b5aEs*l;`+lmKzle5W)OMVSVmgPoZrNd)E}AF8((bC1Ew?0 z?aQh>vpX1l^S&JKYYU%SjwyDA>BfnN>Dtatw`ly38K=T`ZaBfM;}XnH!y}#Q^&IvR zy_1YCrg*Z#X0J0pnB>hZ?WNrH+US(kE^x{w zFLuf6D0>LV5)kcjDaZ=c@};<3Q(})iTt!D%K6K_ zDlQ-+c{1yhm#E~?zlxnQwu4=sGgl@w6s}wC54~%DZ+Kozmq_flN3gj;V)i@INIi3n zx9cq>JPNW;;tqaj)nF4PM{xi~Y(xzFed5=Acb28}6K#|vq>!N6vizI+-=0`b0#Be~ z7r>VAhIzAjq~R+qO5_#*E72jW!rgltz8C2H5hg3>b43A7A#AJ({D2fo7Q|;kiB-JJ z7Jtk+`(=N8JK))(a+*F=MGWrXSmdc#S$jRfFcZqmH>N|~!Ua6nl@}nw~ekpr*Av7!0sfnhLzVa%-sA@+Xq4Za3T$ zZ9lt|tia2QWHdxAp1nq+nR6z}?k9$o)ldCzdr~T7j?1(?7WudT^WV_!bZI=&(hajC z<-P4c_LO={cW7B_a4B@hyl89@fq=#D^WNAZV&bKSm;6zgSHY*1>Wm^f%==ZOAUK{c z8T(}#;g$wQFthght}3)+OE{=-c;^kJiVUD?0dn{f=IegbKjv3N*2$rN4ok+okE8JM zXF~4Hu2yx2w#wBCWj4u3TgfkrVm>G!8Nko7S61!Jg`UY}CR3}*T2B?yew0Z9(FVMg3CdZYy zXN((Ie~O!Oar!u?q_UY{OKT&l6h_PYN+DR$_bN zZhi{1h{A?!_67P$C6;`mY7zzZ<6^y`!SG{pwEKYs!$aHPGlMb%*&kbSK-Iki+*Y#<>kTeOjbbHr^YrKY00;eMpr1$_3sPxr}% zs_8W~WcmEpN6piJ?wuy$x?F*Uj$4JqSMrB?-?uP%xC6+VB`LF>UFu5CRFSwf-vFNe}g@skJ%rD8%YC)e7J2 z#;e<2C#uClHJg$KbwnO#)6?KC)gMTDdK`6w66H65z3R}Xs;hKufASJ6u#k&e+ zU&FjWC6&&y-Fsg3i;@pZRS9W@hNuRo>F4M!QwN$}SCl4yJJ95tU0!}C8RZ{+mR?s|Nj_DAaf=GILr zCl6tCfZ}bdNgi_76ryMV4^QmESgQZvn#c#y-odK?-|&a9sZ1Q*Jd`vSY#On z+x4WOsS&N}N~%xaecXO@bfelbA=SS{zYx^H$-{^PJ!=d%k~w#9PJvJdeVw_w7d}=u zcmbq*X76^+=e7=HOkg9x=D*5H&@RRj^kuVV>Vnz(6ePiE`XR-fd4Fero-KT&11IrI zzHsI~HM%Ii?^I`Q5wG5c_^J}O=-h$cp>A@J>m3#zwHa7j@iMNh8vAhQ>JpaQB{Zxi zs&o{ijkD~cQMlx_GL<&d1iTAH+qJ3DYvQj*niu_*Z^?^B#a}P+7Tv2R{+5o0{f^aL zP##O3H_G@??15TEAu!br@`2@I_Rc!>7+F=-yr`Ts|AVI^1stq2FZ`P1c+Y-JsVd_% zT};0bO`7ik53%I*Asmz_RdD)vyX%&H;1|Kv-MDE#D^QEtORZ)CXglc!N~MLHsd~mi zwm*L^9#EY;ucSJ8yw}D#aqr(zZ*^->)ViaX4Zy1AlxRQN+09mWwDa9)>yEyAF;BFTHnTSa6)3VLm=I}Xstw<6xl-m2!*E*ce0o;Q%wu&q1# zT0UfFr?YGy7(0nO7*t_$Rxx4g$?UagmOwD|rLbf($-rH5c$(Q|9U24S8-KxSj33tSoo_Px2xJa-c9!T!z73uF=i0knjAX7y&pJ+YX*5rWeH_wHI zKTzp39VS+ufp!oeiEd;EZs+^iqvHI69O>-OAT9{m0Uou$G`jM$QP)VlGl?{iZvx?@B4@5#+-{F zVwVfI+|+kVTyXh;GcfW2fwqFnph?M5IWzch^5)Fo#(MkW?E~GSDFeNk#b~bwI%WNWUsFp)K7~8Mh@7TjFq_?L0n!(p zRh{f_+0@Yj^0Hx5GYy+M%=HEZ=UWi;GZ$IGQ2+_spZ8rM#lr7G1`UGcO(_mAmZraB z92&6*JI2Sf2K&u%Pa7M`xs&Mfx)=6j+v{=>4iN^iL~Q45)-6bVGfTFfu(cvkyjw6s4f<+aGa3Tk5p=S33pn-NX~^+dFKnCXks#b>qtsHSFYNL5=Kc zY!T;_P<9=Y*hvhNR=-dj)LE7gk9ZP9123iI#76v*oGRjm?twRHq6{z$sO|OQc-PLV zew(As;|H*6Na1DGDA%PC@vd$0o~V;}0N&uQC&)_hG_6--s-@hmgV6PYoY_nbstoQ? z?xrqUf{UL%rFn?GeIz+D;{U1oGd!QxNQq%ClZE3SVnNB&DE>yvp3)Y`TL8wOK64;o@1}s_J*K81!BShmS-74+1`C@=Gc3Qp|FRh!HA+R{` zAP&-;_!}wRHygMahW9-|$gs!bg44sAZ8;WjI|O-jVg~Cc82#E4!vU^wLMAYkX?Zd4 zdF`-Ov+Nl~rH>CAr=g-K&GY6_7$=>kzc2&VCYJHBw6^XYI;xJ0SeIO=4q(^NYTMW{ zke3S~TNQThZ1ev_R4wxAl`D+QDvn{DH@6I0QUOsw>PvJKsDyrFlxCYxw0g`UGi36So)6xwAX*ji%T_hf z%wJ$kv&se}7r}9?s$c6t2K`Q=i>5cW7|d~Bqt@NXiz@Sw;6wIDi|l1;g1(R)CQ_OI zFS?}0>O~Zpv%;MNHD^hp+#JvzLlvRKgU-`qkhD}t0wj~tqGX{^VqCG#-G$V(lQ$8Y zB_()CL9hhjO`kZ}K%#6kWh^F)j1*Q4N7Hpw4npkvM#odoN*Gz{To|IipS}6eUoSH| z(&7gkELm*BJZ%G4;Y5HanG4b>)+Pqh+!>Y>o6YoSH{&C6&1vG4u!)T=8V)v1P3O1; zUITDjssF9h3?|fLj2IFK1>LZQKZu9dRhJSvqcmMV?5BAxEaN}V$lwju&Mcl}It`lh zK56y_4SdSsOW@rzERLC>F%*w-lSdZ$tJxES^7PH}K*KwJXi33o+6j3y7X_2p`7m<8 zo<%mN{>D2>VcPwp-g(9C#&!Vixu~7)On>O4b&h z95;M7BEtJQi15}&BTs31H~j%>#*kNkWDX6A;Qb3{TN>0$R=_&RfK7{Zm zQ&?*_DP>v=Q^22r>6xr(1sXIPtDE&guh9_E!WXZ>!YPY8p}W)TTiu#)B2casYZYqxw`3++`+ z5Wse6lahzOlt3Q^8)~=+)Y2hD7~Dje1<9pa`sDd|G<9Yt#WJmJnMrYC@RkvbE9uwg z>)!zf4xVP;*VI2^BNBs1Cre7vp)Ukobi$B!#OE+;ODB+DKCWQt_CLpEU=2@KUh3a2s9ToQank1fO%A;b@y_@#M`cnQ{+ zZ3M=FG=FQ%N#JC&AXhej)3Uk3;7EW_U$(KE{M3Z~4@8{m4Z$SUYWNm2NW=sCN^HgP zXbof5a7c9%5@0SbI`38_2qTUg=}x>nIk<1OZ~tY6HLd6+TLe-^+EO^E0gPyXJOp2- zMeG3JI3e;*!d%5N=1n6lSMJ?Tc*0;3A7LWmK@djBel*9^OsAcc2VnBO@V{(BzHd;H z#(t?$kAr`ag_s4L1pSPS{%zw-C7KAA<8^)q-JRAu4o zLZtNQtt~j-!k+?sQRSBDmMZ@MMJ)#-Y&V^}6K92J#hNOorppj^;&cczL^?9IImf!k z8jbzO@N)@%KoghKi-O1X2MFyz2+kGtdMQoml_&BYDM_opwV(@|7lAZ-rVL^TO0**z z^npC3+em@=jI}09KZl#nD8eM_d126{g$T#2%fJR+Lg|GlEs&jq|EWMv6lh}^)d>HU zerD0bHFr7aIWag)phCGckMqK9B%nw<4JB3o=~m!dt{d`TCU`YWG^=`CI7=i0Ih{sR zb2XHI+ziQ-@{yPfQL{j0)r$P3$Sy#^An=*7{p)N=&=c6+j~9{V^4xxnXnu+1~5d~v`W9$)AibLDQ+#<0sZxi};P0^2}Uw;sF1{Ptxh|E4-0o8)v z$pI;&@vvu~gT(Tn8j6si#jWefv9;8EEn{mrIyjds>2*Kf-ZD}Y|DWtF!|6@;<{YU< z{qesN_R)0i_c?@j^5+RJxE*3%sn3vLnoc&&$kIu0D8+N&3zh!EVFtYfE1?2uz=K$% zn4mud6YQHO*167;tpqw+6|9ouQF2i$`SRsS_M@iNYr<`Fxq8z-@{mY@l_$e-@e-2J zgNd{t+IVIE{n7UE5|Imn^{|$e$Js{v$I+PJExBn~GJQ-7H1v=!ff(82aV0^q1N~i` z2M+mANU`kwXCN&bl7^SZrnN=dL+nA1$o!Q5}inVw<6zc>Uj z6^u-fx3M*k-7HAIXGWO2f;H=})R%f-uRJ#F&t$$>uCyFfrfcxe%zS=cpJQR}<5j+o z%7=sKAEGZE45`Z;U)(+s<3mW>BAO?s~@~Wxt_q9S@4~;*~6_v!w74=;CSYqy4%T?oA1^VhegZS+ZF&}Q%CX|!xMi8QOI)+oH5 zk+aFEMg*hqmyNd=1BlafTh6k{TAvZgN`pF5(mhQhr?)-_dt=GqpIo1JolK7Z67d!3 ztoFb^i=H1fd*H+i*oHGmiKGN?X#xDw%nmQrpGRg?ap(%d9R=1K9B#t?y%#p-(mDdBSMM|C38N&G>X;$t@0w_owrp7;pJJfLQGwI{gQ)VvTSv^nu1 zDQp!t3KnypH~j;;R0Z@=1rmv-D$TyYlR%ILUCn;yMPVN~p~NZhf@phnDL=F>ZwJ#K z%BRo8&NFg$wn^Fc_O=@P?SPjqa%3UW>9D)CN47R0 z3v_ApamwIKbO|r&oGiQTiJyjV?TMQ3iJ@;Bv5u|!Op2R%nixLycA0()efqz#MTlp# z<{l*-o(&}KSs^Q-p{p@8wkPfl%T;-c7VzjL?&R;dRPnHWoz9~R)dqO`-Tbg+X+EhU z0!f)?RnJC|c~+y^w)Zj5YA^?Y`*q?~-L}22e%H5cKd4{lRL@k1mZy&6y~AIvXA4;@ z*fuL3V@>|^*sUdkQ0u@LCjY2+b}{=Gg-8IFd{D#bQxxm7C_0sz0T2wzYCiO2-g4~J z#zI|9Krny!-?_{#v^UkJu8f#j6*pwcnY_3CbC#fR zrX&6=Z*zvL4_a}NppNNjS~?91@zud;G^{9&{g1ea-8;G z)D}*T!H|8QzfN%qdWUtU=c}O;!6$p))D4}SH;a0mp5bNj{e;mOhr8H|wu=qBnYf#4+MAwjusySOO7#oV095VIl%6#lVN$tXky`n| z(#qzC0gyBhk;65*@fKBgAbVF;Lpv-?9r8-Nh3!}a^miJWT&kRMZsUjg4V31D!1^<% zp(kWEuv9;?it3exz+b}U&NRRjpjj&6;cAyK@XA)FZNHnN6;IRbMQXP5yVj_;Mc7@q zip?x!y-74dn^|m#2-B7cMu%>c9QbE!Eq1DnO%3i>rqB>hVgfroc8J+&rG(kn>g?_J z%0Uaoli0ojVq?qsJeN96pR&0bjkKAPTU8YokQ|Ma5ULS7@z&Ac`NcmrqO^Ibw)Qv#dg!1fC}dT`&vVQ;HGMcy1P_J#EK#uL6&Ay>*g0(qCP^@m;FKW z&{7Um67~Z+6t!N0fx)a#KEOXmkDzxVAhRNxWtgJ5EcF@rS4b2YdJ-FqZX7j#tr%g? zH^f_vT+F2$knb0`^A4%zR;)bb1>*-WcajkxV4F59h4l%roIYoLwPT0LQ@EFGVn8Qa zmzUE_r)rn@6_FX0idW9u+q3no-DK)HI#W-64OMpC%&v6z@foCq7=L18W_jx0H#jS= zUtcI!nJG7*iE?=|UakPxUd!r?%xA1968kJ2egWPtj2pHcr;Yp%@J4FQoL*z#?dt9N z^8P%KfpgS58%(>H;bDVD76IVfG{{gTtpZ9Yhkl_wmt^3K`ICiXcWTn0`U0xk_RT;E z>BMpeW>uC&i|H+9!C_)F$rx?s*^JN4vv88ZijMiRiI$mO!67UoIdpHUF&nTanr)k~ z9rnA~h5c&ocPsvB)*~>=-_5ks29&-zTo;+xGIA?YmS?CcL_AqJT7Fa)oo-yvzv z*+Uz`#cqy5+vf_&$wDjKBwBAie9z`^#j>BQ0;sjlj7(bGSdXD0q}GEwHM)Dk@ffV} z_^)#fZFJ`7hhG@i<`9CFC)ct2lwDQ@D|Ol-=K;ld9{q3R$x+!B-3lI%rb1 zFL_|UoPK>wkzo%{0v_#200OYU3&XSIw9V+jNh1Tum|qAR&vL3RIoB97jusC#yDx$5 zM9gwjR?Hd_S*LJF2pd0PJW$s)3**Qd*IL)Rjz#fnf}{LR+!VqP8We5(%h zh_a{6T6G?f|F>(^v(K41GOt?Z-OR4{PXA5r2@A^kI6gJ{NpD|uq_^yYC{DNYkB~#a zvVqZv&b^4GX2e!!?jPkN1QQH=F8rZ(`gwz|FCNGLI= z+)drq9uB0jZJ?b>v=BiWPKKY3)>(u9wMHsJlGqyjj-?hR+(b5Dg!|V<915kIw5(%= z94mq$&>U*Fvj1|iY@?_y_{=pU};WFZ3{p@E;7(lKwQc*^l zlj!76yvS^8>za5grG?TPgJW`2oAO245SZ+ujkpv%uQec}pHYEuutI%{R(#^^C5v13 z30v&1(3aq1qY1-*LiDm1Lhh(@=bEaaT~Va&JAo$t|KE_>UJzhOEJJXHqAWQj9+DDi zwSZ6rj+JV({Xf*XmRv4y#tJo^gupli@lRqGyAn^`EI%)HEm8#E~#oR2)01dS^D`x zPp`V1o*rj*cEEE;pOD?*5V`zapzrh2lH5RcHgb7-Rq~iXv8J=*nahfUubRPW)Y$r8 zL-a@2K}>1hIPX37G`v+A>&SfE zhl5x6mc>V?ZRG1Akeeokx9DFiytx|4DSt9tF?W)BiGgHgN-1yf)AYKVrN=RO^td^X zm`)5fAyR36WGq#lvDNtX@L#)bYtjCO`jNHrwEvKPd`10OASEwD6CuOWc)}gk1%AY` zf;uD{gMVhoysv6T)pe%P!chWET6l;gWfp*G=Eo|yKcp(ArOlDFIan4<7Wjuaf3Vtg z+VVfa@1?SQ_y%xhfl;AQ{r5lpFN;yFGn)P;EyE2Ks$krZL;>nGaI+NgBZQ1B36=&P zsl?OIwa4AZIvw(dyzlWW-RFJ3Mw@JQ-7q53(BjWcC+E>)g4a|}hCf=%1&UY~Ew!El z-|sM<1LD^x$(82E+A=_x`YD%{(^&E~?s@gUuAMYnzwCoeOlvd06|2oO=uxOAcYfE@ z9TSZI-2CRo^mr@&*Im274i=v&C0mDYZE2+5;2yIn-6;A9874hs_uvCOL@)SXXFktnyy5+cnmz=|4|2 z#$bY~%ivS8WT6aQX*K6XBEDo5C|!0_#3gT`UNq+k1|z<X>}Y(~Nl@s}1JQwkVk zmCFrJWmFv_IS!2)OPu9*Gp^g8dr4Wiulva`Bzz@m{QV%Rn`~DUy1(oFcQN;q{>5&79&a8)b7%KOs-EoBlQP z8p;#MI(iM2y7ysMO8~>B(K$d)ZyE(_37KO15!naaOarD@n8KWYSv-56H51-I@r;@9 zrbPFHwp`vgAI3Z|X1~O@;mWcVoWgJLX9Z@#qSkZ1wWwXf$Qd7%=o4~MVepUnElw&i zQQ0zM`>UzDzXZbjGWEfnfU?GeHyrOTtxx-x7xo&bsrL*h+Br%CS zGAWh9UPsR&m@~g4T6NL4Q?2MBvN!|_AlST~bsIOH9FzS4@L%~{fTz4U6Z9vT3=XJ& zgMQ4^yX14cK-V+{PeXor@L!=-c^@_yUYmC3-0Anf0M`9`V9QA0y_BZ%D9~$D7Z+P1 zNfkF%d21uBWiJtTZr-WPPssDD>AXFFR1kE&6@}C~_YJ<)rY1$SKUb*ByllcvyMpy< zfZdp6j0%F=j3kkx(ShtN=7YZ&7F1clshVZwF|R#4*XCZWeOu8YCtR9t1hZ+9suWwu zSf1yc&uj2?0x5~V5y<{xHk?^w#LA6-0Sk>?VJx$^c3{bLi>LgLYe8@ys~*5=a)6n| zt9g-Kyv&}4T|))3)`B$oS))x>Xw&3{8>=05l?^sBlwYn2^#ev`MKTIe&=0CfXHIKO z+b5gW+YIAr=Kruo%bd4=E`>P{c34U7f;j9y*kxh(^8Ocn($>h^W%2r-~WOVi?VhuB& z%8udOJ86k>qe~gx z$9U2F<$LHqscN=Q|MS=?~)+kz`h=T$ni0ww^QnuhD4V(4i+38<=K9g%7 z4TyAV!epn{cCu>9nA10F5Ld=nX80=}bEeUp`*{!UhI7zKE6=29?L;6zxc`aPg859d zG?9mSzewc4p~~g8TtXidY?_~75e!BSKI3S19_RQisfP1xqNBO1PmS~BF~N5=jpYxt z)Bo`#dOZ`TK`t#E<|M{rmXRKG7Qewq+cXWU)cf{GFpRoF86>_d5Rm*==@BaZA4ce1nwzafLy(@i!!3OC3HTDxf+|>aj(}|X{-qu3=Kf*{ z$R@{s=-_+Ix4f~fLSV}KFdRMF@0zF}Ok-k4a)#tj&+O$Ck-A(^|K0e$fenMROxjGK z;0Rgx=k)?9HK8m1+P3;vcg-xR-})8JcK~7{PW*C}-0a9%j9O^i)5D z3Y^4GD1hm#ueEswD@fL>wdR}C0`PO~C#3HL@8wSL$#}af#>ET7xcCs~o*qUa&y^=R zx0O#2Wa9tu+iuJbLS`DHvSKE;<5N(~m#()P22S`x;Klfc%y~US5+Nc^tpAbbJZNmT|=XTDy)` z(9`K979Ww|BcRxMU9q)ZVkpm0yp6BBfzJkB`T1`WjFZ%G>z^^AeLHZ(!cs zVh83k5`q~9gypZC7w|494lXpG;8XtBXj(8Dz;>O{Ss$-&R_sLqDhQ^LJNt=kl!9O~ zpZwp~;*FM3B}~6XuOnI$y)zDT>w4WY#+-j*QNfJ|xv4(Kaw#ab-k#OD1uT8f?o9x4 z`Y^W+_k%wB9wQjRqs0@se54N-*w+tmQ->VzI9A$7=jy2oMzrPuD9DM2lARczxcEg9 z8>N_0^_Jevq|TcnBU+R3R%(>){1LzYuVXmuq?WdlktK1tn1G6=T9)Vw*4-KcAL)@m zQ*Hj4PU1OAtt1QJjk}P4$YUl*(*iO{NPdDO793kV^?-q5+5vdIk<57Y`e)v3mKp-> zj7J1f_L_=4^@Bp76Bk1T)*UI=ORZs=Vr)>m*O@nm8ZA^N<~B1!_xsLPnK}(zq8C-{ zY50G-mxlBsy<#!-aV6UyjlD2W(J|^)x96|ql>OA)0n75E^TQxJ%otsbdek{r4=mVI zR6rvds@&w`nhuR)Hr!-q*s#nDYq%y>v4%6UB#&sdKI6NpoQL{4iHG^*CgXMR_czuLwsRp< z#?IT2p_n;2^B-Qd?>}}D!%*#8JehfTNp>E3wf`cPR+sBF_CBGTC7kJ2Hf13m;J8ZfKXrb!T_+5;67lJ2{LpXjd_2KxP&-k66KYrNP zIP^;CoF(Jus$lk-E`A{Qblg1SM|u@GbH+9fpJa!nza7`^M=V|2pmTOS|9}%JW&F2J z5P#KU_q>qriNBu3hs^v~YI1&BripEygF{sGuWsIy`2S^mxBdA4%lMAI@r&cT2<)2i zeS?R*@qL{SIpbTEtg8=4Sb_K8G+ptILT_BXe*jO_$c}fQIr6_7@7=?{bi7af;&}HbXL`K*XuKakJ9mvU`-#~#r`CH)!q`Wy z_Z;kS6M+~A^YhM-_HpGD?VUQiu7BU{?c)ZP3Wr48i>{TE!Fds{BW^A(bLKoKaV#}p zCf2-=4*k;6Wz)-KL8~jC%{|R$YNNHXpz)jmC5E2Om2s0hFgxJXykWuaas5l{`-XM2 zk2^{AwvS_RP)&uS@t-@8DzHvGDUpV2j*YSHU|!nCi9htV7wK=~>8DsZ5O3|F2M;Qs zi~Sk+Q*3(^%DHdN!*BaBNctpZ67yEElb{r8Sp#KT%DR_!QTLA5O6z-zJ*H< z%gGjeY6KVIqkn0z)4VkDUGJ5-{-(S)2G8fEmjqAdy$=ljk$um0@RmqbYCPVC7$xWG z6eTHz)=Y%?&{&FAVJX^I(K+h`buZH6EUTcmRjKnRw3kBMMTp&|P0DZmQAY8d`IJQj zC|qw1Mbl4HjxT&Y+D%0xb{*1zJsk6mP2fOFE;sE+4`OhZX?a!dz>JM(v`15UXr!9s zYm|8>m$yDRh9bHTdMwgRH3NA|Bs7}NsU#0G_oNzc71xVIo@5A+PO3Yi#%K_1LW$1k z=QXMG3c0cHafWeL4c$l2xuCFGo5IG&MiF?Um`4nrwnSR1$~IJV%se5MilsXn^;*OB z&HV-S#JqJ}AC8kpsQ)WxRismxK^gjPBn$c~h??BO>a!NBccsB%Qix&&4gpUeEi4Lq zG%gmYrn%tHj?M2dxf}e(AWm?rT+XtRXnIE8^tN@s{E29u8LQI-!GE!grQ0WZH5g6a z)!>4w78%uZtrKSfYe6N;YHU}3>$P`rK6?gts#-Q_GBVQBa4kl^=g`h~PR z)M6RquI4?c3TfAw`!a&#m(i~?w?!#nKSM9(pvV{KI9RBB-g;&!4(t;m!6x1tZ;4DJ z`nYNI*g}#*CK4=DB7B7mKXnqnQ_=XU!ftQ?%};fj5;QtZ^Vfr&P*nlG8ks)uv9`J( z68yy0>y0bUOeHy?W<^})2mYoaim`=NTn%Q(W{x&|nIXe9L%jW(B+3&!Ptmlz0RFw6 z=wm{)McDT!A9^j%y^>a?XT|f3z{?dqvrcqVH%CP2w^7-5VLIu|5p}`aD?BR(8DcetV@uqjhw@GD218UNdC2!mIE|AmUN7d}M0j1moKxwh zCXF=Hoi)9;GkH!48;Y(sX%u;yCzB`svvOQ74}cZmS-^=_K!K3*SmdSPeV#Mp?JR@a zkM1ZSY7h1>H+5Tw>;!W-bSz7NmJ=HyoiX1=hW2qIK`m)^A|&>t;Sw1$*ue`KSSYd? zUgBH#zxi5#KUSt#tG>4LRZB_c>tFQsA-;mp?AJT>^|yQ#o6F>#sjmr02Gd|qkG5m> zVcXjaxd=<|^BYTjw=m^GwUax%bBK_1FxP*$&e%5BJAhR&_%?+gXH9q-F zLaXao(zvB4bwQ``8vm!}Tk86Vp&Prtc&6%O5jg6r3OXp1?$+Xl^#M=<9C_==GxK|Veni7n=LOYvg-BOsEE`NV# z&atex#N;Z9_mn#G_W?ZKQ{p6U*H^JVA)_r4Y{u><+A;zn3t3^%jf0Bnn8tXRN-ySt zTO)8 z^d=GiHy2hK&~945;F!F{z-6x0KWB|exzqeH%$(XS>)(;D;x zU@}Mjt=^11XZ&?EvH8!W)Fl7BS>u>G2A^WwuG8y|*?%+!s&jO>t9vdA0{10gnffmA zM@vIbwQc^xAMUl+&cNt4=jgBZsx`CMsMSU&xQKA%l?Bl!RE+@MlL6T9kLA?Z+r3ir z1!rrXwS2bWG1<1GgvPN2xV@Ld4E;J!mYF2p(|5Wv`yfdN;Zdl{f>`^SC6r74?7GXV zlP3-HM;Gqzy}a5xX&82p7t*1atFU=(TDq4|OkmyLQh|n(mTxlnzJQ%}*_&hDi^6>T zo#9OMRw%s6tA2tBxP(h&>ib69K`A0%^4G2WXk|E_4~lx!RK>Vh0hC zu~EjH@h@V&_PbBhrgkfMZ1@?2fkC;(+s#!H{tYD5L|(6rTv-B~`ZH^j(@Th*Ik2Ye z1D2jy%Vam3x@#|cHSi+YB`R30o9^L3m+v)mf7j{=1smE!IeN33ti^>6QF_hrJgKaa zBDAo&HRk;bMXt8&<5=06Wc3r!!$C1*!?-R;{WmnfgO-^lR(JR>jMTMJ)g8nkKCYnF z8_z~|9$2CtFDa<^0K25UK%*JlqTvwKnMXUzbcSGDr1_xWO1?(3*7;x^Bf(wu$}2SW z`mcY+_?*f6h}Iy=PtJT$n49yJAG~V3;`<7Tp9;D|#gyZ}FEC)G3{YiyJ7C7tdc@7S zi`C`$jLL%gZ^-7{w1{_O!fNP35b^zY@7-%nSiC21^U)WQPlnU!kFA%vCX{pYYhxp^x8nOAxD z@0kZ|D$p?}arU-HIR}`;nl~9crp(m5QKUD=WSpgMotNGn z?x%pT(40BM?qW2YlexrTz-0r?F2U%G4YR(V5uLtI!*tzJQztd$*-URf$%&*37~=u6$?}JnzT}h zfMj4IXJjJy0DSR~D6OxeVFqkP5|{)yo{pv};;*eOR_(R5wrZx{9Apd^Gx{@=CFnO6wbU+=yD&;5KZpAVUH&VH@E_F8MNz4qE`lL_Ok3Q;07=WU;% zpI`yK>v|v(3+T-lRBlc;sL1joh03eVf7AdS_V`)B6_|0>@S?_Fs|-PT=lAEP)Z0|QrRL>P8i(So^u$QK`5Z8ahcj*~;hd7l6%cVl?Q!4Dur=)%zht}Ei zC?Qew73)fl@WC{jV`EgCToM5$pttgz*h`RlLOxk%pg+dmwm%`qKn@wTs*(SMK4dy_ z;BmgIUJ`p98XE@Qlv+5aOElcU*CvJcj?M6l2b4n?zqSJ!o8|DwKZi5{6r#=B9i-{(>eA%l$i z;zm({xlp3U`X7+1U_l>K+z^~yXAevFN95x)D>0{pijb?VThu(FDy%PVpywbmwNk;K zs`Tww>`I&eqKCJ0+?br!M?W~;Zp}IGxNVV^}TUY$LBh+1OsI8l5J29S0WU;A9;QlxVGJ`)1>>Z|fnJTs4a#3r=F;}p_ zs70QRR6+GevgR(`s{fa6{&fw-^p?ZA@=3&a#2Mk{88ii*=;jpz1CiT6{Imv#59GFB zQ|H*;ojCzhCm6%+SLud6M`!UfgVx$_A8l=WO9Np7xPwL#68HXcwmkhz&?}LUoJ$>XQeuI612iE|HKf5Zm_nQ&i zf)NPN_Y)jcIZxw zdIUr%%H_Y?;j8NAiHY$KmNxbAQyQBpS%w_dfTVpE@OG`4sz?}T_inF zEst`$8gCM9y$5mWb;JH_nrl?X1v$ET84~TXIl8f6pgNZ$`_2-{J7D?=qTszsguvx2 z^jXie-!U4Slj8li9~Pm<g_p33DM!W z(n@6vhOs4&+=d*wkqaydUNDk;f~Z(a8b1ZPH=3u0hU)cU>60*5cx$e4s*;&84_Te@ z4R3WDr&4|JqvT9|B_*2QVkmsz-18=&%872qlHk)#)^q0`Z*LA;%}=5){88Fe`Q-FF zgMK%1v7~~)98)6a57!H8S(xbBB$*vnT336-A+V$Zf?6pU5~OgWMiOy%Ty;4yt`)|j z)>EsQldkbztGZqi?*qee&@6LX=mi30;3 zrA~0a@vXJ7eXN1g^jPU7vq((PIwG4Qy z_~Q5X48Y5RV06lXv0o^YM-c>dJ7l2e%PdImpA4v}}gFXZ);zAR=Z#r)$;KV4?9)aQ-jnX zQv(HiNx`Iizq80LpP5$v%@vTvF{}{|ed%VVnGqA$51UT#gE_$s=0^;T!hc*jouA_f zFVPc`QQ&>?Uo{a?RWqq6uIt*q2{G|QsWx4)D^ilwHD}tr3;ASS)(eevfjnLCdqMQL zj6g2l-BfKYbgSIBZdLZ6bW*-ggrbzpy?Pd5-edwS8<@`J2`ws9$@!!ztW^nI z$a&dt!8f4VI`V=&d2e^>6oOR*?toY|QxRpHDn47BN>wjcCFFm+T=C{n2{iac+JgKe4?8&pJv%o$PzT z?dZHFmVe`RH~$Cf#+@U$mnz@bQSo}t(k4-^v;h-G7(InQ(YPiK405~9?ITz-VyUp_ zDc!A)(MM~Q$ED@SWu#BV8ZgxCc_^A0y0zk?%wSit_Xu8(n}8aiYTygKBn*5-C8*~2 zuAe7S9=^*h0x4hCBWyd}o@>vQXa__SiuZs%8DE;Gs&2&22lWb1rdb0F1b>(==ny1h zE{e8gTEF5Xg{Z6#)?khv7KbA#A8dPpOfLi2DH3-#?|Le2zm}{*QVIF6zzs=&A*tD# z28Y_UiboOS6klg+_bPuC+5Jv{FfbK_N8@y0>h9QPnA?^&KHDX&m}Skax;d2*d0!Cb z^dj~aj<*gyESWr7;Ygd$vUAtuTtU`0P$Kfr##c^kaH3w_OoRK8C*p7`?+KBwiFDed zxtXz_k|&8DhG;a#ZpcU4RU|CPpHCnVMPLdBo33t+#vVsRrZ|kHtZ!0RH_+XRHDFqG zREDc?*8)%6Ql;IyPLiDAlX#3GPsO9oX+B`O1Lo~Ha&g)n0rM%*k;N_hK=onCd9Td9 zC7!SJ(*6GE(M-Sgm#+fmW1?wc5`ORLjwWGQpD1Te5H1Gc3dzXGa<87luSg_gDx3rN z7))46MFmq!Zb1!L^Un0nO86zQoPf?DeM#9(V<=lY+0*iD9!dVj|-Yqv(l+(bR!W zDD@zMCPyxEE4&j$Z!5{%gk9Fd+ftk%yL3U~D}G@;wp1abYGPMe6I87c*zASKPmwgX zA!>mAlo`6I#C+Z!vh0z6673vSSGjAkvo1GwJNEo`>cXC%Pp@dg+y0Q~kU}lLry{~H z^4&4%S0K!)s`;vSc|?|&Xtp-r323e80)Qliz2-D~_%HB>?;e;D%s*7;3XMGI)#exH zYo~~swuH@(ZT^v=T-{ZtbICZ{fCsh6^Q<-$f8xOU)2FnIa1*jnL9A7sMzel%+Gvha z77?vdj7FY1F{2KBPxpMuE~57HI&c>6GAGPce^NX8u`Fgd$W8+H#Hy~+BitcmA3|Fh z5|ne~oMg2k8<3@NtT1T%uE{yhjG^>bl);hLEOPi@CIuu+r0tB#+$;jkGs7 zb#j078=R;rIgCvsLXNixBc^eT&h^-rOt?Bh*@orxGTg zv;~zVk&$J<#GX*%YVn3|%=n_jcu9srH}=Fh4C~k}z|O;b6le495u4F>D7;42NZyB8 z>*VMo`-;fdwZAmzo;T=Eu7Bh-EW{PHF z#thLgg(@cOMe51GCpzl%i`ydUT(V;w`lLv?Y7~MnHi-d=&mWQO>;E8>tcW5x-%CrI z**Qv#zH&8GWWGO6=B;!Ti?Dr^6DqHe9*c}Bio>@`kl;6L5*8fB#~>Zn2^dlY|Cw6f z2`p$QAgR*U%v*#k($~z2t#=S$pguO7B?I<-WjrWhU`$OnuR;{h8E9-@`bkDEI|+(( z{e|x?xD1q*#QPMxFgWo#NPWN?**9xUdMAqebdhe1yST z^q-Q#ma?({#}oNFmD3A3;F@t3BC*AVaD(;Fdysskn*m8%Hk48jd@eHV-W#D}0D_Nm z0>~2tDpV6CjJ59BuNxau2u7<^=L}qXG-Df-kSW?hoprS;E_H2>J)!ETAU(qx`Cly5jsvYMn=iV9+n|-4RdZ=q)&8B(ZNU9G>~TMlc_$%WIr4I$6&>ITMck9@`|z9PIpBe*`}D> zZ5%5f~@l1RAmiH=AR1=^A2w$>5rNeSS2-iBLA zbL(6MxBbZ$@UgG(JV?q9t0y^PEv<1ph}vna5<`kplXc-uva@1;ibUL!V!ouN3gQ&Y zAR6_4(>H8RAfg<`11?TatQtWA=2*~|F9jm%=dw5kjk+tW4_GQ)JxjV@3d%X$E_E?R z0nZU@^?a7AZ_C&aAE0Utc;Q+_Ma%5?JB^z~bKwGN;b0W-E8#;329B+ zZ1V1DxHK|W_Fd2No6Du%q=tJSs4=^Wok>s9W7$hf~C5 z3vZGe{jS$^qi4Xy;kr`R8k2JqO9jzW68qYd!A|`ow;(BzAqk=A6Z(x*N{y#7lFD_V z-WuFbTuP(OzbdE^$I>T~CYaBJT0dHy;q8*dXwKcdWB9rU_k+TgNPQQi9=gy zD+6}H*t_A#isXZ(<&JHRIa&M&jP>dS9{OvBHT5ycz|?`({9Eq5@+O7J8YnQu>78LL*}oLL)mz({I+|+|c-ues1iWqP zYvb*H>w&x^-d0mi@K%+=FSb8XAhPJ3__i2kx%sT(KVNWZz&IF}Cnd&be$TtjdGYr+ z-G@hKg(h;*>q)N_hmW({F#5G@>v2)T0gAg7z z>vTxzlpi<}xE@bMuB@--$2(1!q7L4G7i5jBv$j2v6V@9qt&>8A@WL9Nwp!@5Yr z)0q#DC(IGD*`er0_=ULjJ7ZVi(19G2_wZp?a6tHQrn<~4m`UOfNn{9QelvCy>}>wL z<9HnBoc1p^N%BXQ$my9adrqs7`7*^m%C>pBF&o-JFOsvLO!owaB(N9rr^NpjcTp@~ zto*Q+%37x4E{?KP4dKb`A|r7(9dumjUKH6y^NXitX58R4vW8iA77EJP2Z`L>s7HF2 z6=Wirkb>D6WWfyovssxL6&Dg1#kaYj#=0h#a2BUhvfr?}iPV$kf`luSof)MxIwQ6BI$VcBQpsyBaS+vXT-ld6}zdJxvIr_ zTvmCXlXXYmq&{}o&uS1E>R1KCpXGyXXRs0uCpdQA;5P>i zWAK8*?SXpk>#%#t2#&|WC6SJZMI)!*PZ1`R{^FWxM?zpdi#dKTg%K`zvK zYgAh`F-vxG?GV|it{_^~XVMDSI5;oraV~ylJ&y}mGXTK^0T{g?i$X9zOMy~9RqjSiTf1UEPX;bZ(#VGTi30^S1a3Kmxir%I z+H2tMtN)^mT$R$z3~TZhwyitpXL8Xb+=771Pn~dD0Y-euBIACKxW&*bgpY0N-TGo7 zKLD84Xql{+%wh|1)0%W31752MTSRhx7S}a=S;uFDN-$r$%|%e$5t#qnsYn>JoVmL9 z+dFeJmdeTZ3ZI$%CNJ2{ka4Y2vVGJ$+j27swpi=Sz`4`ktFGCyflmJ7>P%L;1&3Y{ zi-~p1pXqIqUgPx8S>K4@==4uc6o@5TI!LGRY1(f+$MVmpCDy=B7C4>uFoPa`yZR4- zzmD}^{%`AF(<@oO!XKW>Ep_`pZ+|7^2Z@+YjzHQr%0Ok)rI|>h-uLgwB{EC)1N@{R z@RzSE1m1OrLZBi-L7+1cjGB3si28AdsKjddeu9RKsCC-YDfIJA{k3UD&TKfSgg`6{ z9XAz^jVDsdI@Us|^Si7UzInVpPSPV|Wm#SSZ5vmrHi{DSd0ak#M^Led{g?4pZdXnb zC3wk}Yw`Yiuf(X!YGv?|AA;8oj3SVz2u_mlCfdKNv-Y7+A!Qqa&}MMbVBO!6 zfS{W|(8TnY3c-PPu`3jx6oT&nK`Q?$zd`Uc1zD5C*?O14ncJ2>$@~d;Umf+$_$mP% z0`as4tC4F%9h_AO#Q8~x8wF=Y{|4gQyC?Z2(f;Jl+CKqbGHS(ptXWA2e|H(5O!gk_JF9u_WU9IK#5+;P0##Aj?8h9 zzsnENxwd5%?g|bz8VFo-fl(J45N;Y1-kKS1>k-T~_EQD(o3X3;D`JA|oTk?=9RWyS z*$$o}>J@yyKfF>Z6GeOM*%>@pmmIt!1*g(}_>;_Fw+%LbD(I!GS#86zPQkK+AZq)L z0f!a}gqwPW+pK3SWl?WaaaxX*k8NPx# zxtcy3%nT2=e!6&IWNQDvyK;Om`(ry6^lRA@r@L_L{lPE8t?6YVq??vIHuUHPHwKn_3vn z+z>u;e{gU3$n(Ls=teiXVVy30NXTeW0F4kac1ku|ZZxuhSlUDH0t4$g91|OCn3B-= z*vTg9Ed$W?C2Xiiz*H+hsL^Bd>Iih`{FMPb~-%_ zx9;V<6c}eX&I-4kwP=X`cb7Y3sdx*ifzcQkTi)4tmod5UaeGWIS(4hHguEy{KUH4n zM)v*kAt^uZN~Tkr&F_fYIKMZZgx}wNRq^{14$tOM!rE+qd(`>%9r^Y*`PM1VZgr*d ztiY@Ey``U3Q!Z7!$npc}n5T;!rvd^-2z1q}HiyROvbeAFzK9ViV_hHqXxT<>%U&hQ znYwtNRGY45mNADaKE%(cEB`Oe)&CB-<>-;(dNke5pIQ0((9QhLE8@>jrb=`q9v05w z&yw2{A(N(6>xPP+q(__}N+$+SQiq(ZeHn3kgr8$=>`X=S{s-5dzq}a$ZK z(IEzv(rUO#gev#pE##V&tgbU}B{9YS$LAW^$4&}j`w!EjZhyfbY5Li0c( zHEzvQv>*5M(EgIhjhsbZJec0>xg>J_S#qXkF!QCvg@trIPBfFBzoqIbtPg!mt}b$* zMb6eL3p4@7#CB^fZF?3mx=LB8P4y{YsthHbPh~&%J9I^n8%ByPC7w+IHsH7to}$fX zR0j%c7j%Ot{95r_x@$)Prye+xA}qtTx!MG-rgQ7&gEkbb%o{jc!vO=oHgN|BgUU{6 zo*k!8_8s{WoT9xjHn(W>*i(c5;&nlhZmO2pf^S}<<_j(%sZ^(7C=g@89pCRSY|tuY z=SMa$V>cwet1X@Ffx>NN{h9?ofygzG>TdBciVwgI zHI_ZsDOT8(+geh%udHYDU;$q`-Y*>w*}Ch?=6`UI1Y`AW07bW&``Gj6r!H;THGE1G z_>3*X=KJY|BIDRqY=-Nu!}g1u3vdYArbszETqWD(9~?P`(8`F*_YVGlBfxA&HWlB$ zeOtvOlPV7Qbh^--T)QFm~A%Nn3hYR2yx@MWS~{R;g1~kvl;0 z-`ygIjNJ$Ir|4!EZMj$FxZ()GeDdwB*l^Qv(9?wvSvhP0cM;x?Hg?fHEk)W3Eh~RM zN@^oDn1erai|(oCb3FkCidL@AmL%QSOoW9@oDoC+i0GLT52BRK@(LQ30N+`;{JAo> zUFQ~BcJ3pWfzq0l4?0Cv?3h5|fwH$G*TCca^$lbkTI5hnxVgJiiXz$zb{XHwzu9Fy zyLIEGX8?emOl{eHw3gIoN?c!4(=-9QnDw4&S=CW#mt}^?rr3hroTm#E?k`&pa{4Un zIoag6`Q*YZcL);%UIcaQ^TO8aXvBK<(6cOpgVQ8bK`V!Cu+^yqf|G3E;3^y?u&}o; z;Dqn$jKq}*ed$IS^%N2pdSixa<|tmu={l`Swy6kt!Zwik0{x3tD-qn|@?7ZM%sc)Mj2@Bf`F$m> zk~^4h_HJFDn{jAUX7KE)op%zMC;NO>KouY7gz_pr!X}-4wsbU-cM%1McV8>YioM<@ z&EJ!QbhY55C|I{4!B6qoALFRC{VODH0AIsQ=0<0_Jcz5H(mF5I7wB=|LKCHCBwy2%cUCm@2vz zGk|TdO2BIe1dD%G`sShRH#ioROaJiAge%mL3PjBC<{k$|QBV$wa zi*{rG*%Gp1TqA$96*J}Q@%ddhZ3^z+bZqxF)R!UJ^0mzUn~s-vlXb`<5d*FRFu5My zHbif))46)eb70f4`F$w#rBkSA!H$3~VWndF1Obp~(&#B^zC zhMP74Y4yQY6R0QJP|p*nekAaH74J_Bz}be455nga2yt0HYs)cBBilc&ptoK5f2ms#LXYOp znzQNay^Whb+IwKr>wCYVvO}Bh-Yp}?d4|w+fygCGQ`+xFi&NZs`11-LW)ulTbM){R z6>V+N&g!OY zG*unjba+WOYC1+u0}?e!C0)vT8yZy{+n}1?fInWBd4{&K*MJQhqd#53woY)sJfG1G z0EdWX-(O|(t;`xgfx@lOy?O@SbS_JqSMM7Dk#3NsXSlJE;m_X$r)_MS+_J^9KioJ3 zExK&*j(u$HV;OL;1#`3?e4N+}u|ANUbfTa}0QDP(i3rG8Miy%>W5>Zi28``Kqn1E* z3W$S`)65RBg0xCfeQd=@oC<8cA|e0o>s0n_+sS}C#$w?*R?Egq2 zULz9Gws+9_H_AhdG5dWmk6;jj_*IC@Fb+qI_JZm_D|Z9CBW+gM7Rt*^2C+*z)m`6!~~ds(kDK zNzQ`5h$Ou5Kb4g8s{dDHrCLw^TX|X1nY{cQO#kQda_xvCDJI^eYU!*;mHvp2O~%|u zH*p18x&|rXAm{EoK4N~?xz85Xnj~i_@ za_+ukBj#V~n)}>B_jjXCQJha?MI-X`bc9pM+%JpW!HY9hRa0ClQ;JflsqgFMh;)YN zV+xka{_?6)Dpg8^vo(FW>!2DkOetV1nVZ#@DK7QH3?oXK+p&L!o62n%vr}P22SY&$ zw~g19%TA6{UWAsY%c{V18{iq4bD#T(`@6LQwxrA9GnGE8%iQPYxxc%?=`;$e=r*FD zPNvgK>`rH?nrC;BOpfZ=TYXwT;Cj_xd6{3?UtZMrO7%Umtbz~H;iQO;(9w?Xt7GNY{ccr)%?Uuz!>__qkc_?{18D zUB-kHZ?@|CxCm-{S+Vrm_xAAqM`t~#Od{H5K@cE(#r|KVqt8!Z5Z@EHaxl|x;1pZTH7QMSc zRU)&%S*bk}op>rqIZ~d#>j!Y(al5S=Z`h>dzWScjj5pe(Ew;R8 z$HUQwgWbX&hr7FW`euFYB>zNc?SjqSH+R%KZ zB-?^s@p*=@NV;k~1dghF95)>>)*h7+O)AF{;?$7_r=c3l*4t*u@a>f2)6Y&7_M#vA zjfN6&vb|lbDHyNA`^IB2bZg5ckTZOV2ER`epEv$G>N`dZmK@p~|y zHfYOT%mlJgSH=E+2H7qqT)^%IF5}Bp$+b)eD*0`a*(2)J=b%>385|6hoAuMS_`7e` z>!VU1huM4e(MDX^hiEM2y=XXCD-~gf%Jma?S6i;`k&%YpXD>?|ah=N8PckC36B%>0 z8*zimI7l*XOwV{oCMT)!7_ez00xIJ$$;g@h)EZxpXZ%WKJPC|6{dhd% zn12J~UGa?fE3}jkf^ZM$kzgMTZy(plF(J?Hl1OE41(?xB^w&l-X(N7;tBsiD)0V;)?0ujAdjXi^bGzRFPet1DXK0#Ug{Iky;<_U6`J);t0mDr^&u@^bq`Xwe zheeIl$#407r{Yd3z1FTY_>@BoU^4i+Ac_CPxB`c#iJX@SA)g0Q>-fJtEr*;JWpTfQ zriKd~GSD2;XHA?ht>+W%Q}cUpq+C3pAoji9Qp*=LkPH+ve>wo$qvDsC$;;P*HtFPC zKG#y3K@*}QhV627zMP~naT<=@3+JRrFX2zuHXzv zTI~0!@58j%L#gkBwAk|0_g-3TVd9-0Zkh27_y7>jfo_kZnMMEW6zLCACYSaKJGf5i zk&`iwKk`39{*P%QC4aIuZJF55$+59R4jI$JT5Z{NcJdSH$w?JgQS1ydB>|Bw49(`gK_#v zbwH|~XZD|G4A3K!h>dG;Qm#Ccd*1MaKsQtLJJ0MRR-8p7aldcaLUSwcqE)?RXDP}s z`>WF2q-k+aNIAiVUX-MSJ>BfHa#0qOX=D=n*;Y1LvbCz!P8J_-WPRqD)5$Q8Tg=Fm zO{T77>Z(yhNT%aJgFg?JGJZ$wMy_Z(?yLdX`Eb*~HOwRxvlX{VZE78h(YgHAUw?}?r z#!G%MGpRTE`;fm6TPY{aF94EXAnZeaI$y4FuDO%^NJRWI$|a{pPBsn7iDr1H8+}ps z!Fc*g9LOV+gzWl~r7yAOC5!m4&F?zTyi`O@w|T}C$<&ujr;zCsZk1M!uis@-md*r^7kWuKl=Y~^RHY))=B*+l1Gs|=)Xe|1;1`y zD!K$nn*wGh<&nKV+52l%pLb2C02_Yts}7J~deEQza8NmS2flo={0cwh7yJw$|3LB& z)T-|NxA|8tBI~4q6giC|r)gE!sv?Pf9KjC+lFJwjwEHk4mvN9nr%~v13Z1T1eOC%4 z##8c}m&z1EmuKV}Q-uFdC-)iTJ_G(o5sUMGy#AEx?b^>E{~+=Y(yBIh$WNK+y`^^k z&w#ck4I=Mg@($)!P05=gucdy;uLeN!%Loi6|C!`JQ>(i5B>B|O#3&tLoJuzo^zJ;8ow#f2ER+aeO4?Wu}c!(~2@#gNa)yYQy!iM^{T<{<|I`|s z^i=sVpp*1ec`@+B^y#_xB-wqX&FwZl*!6cR4^EHcuT%a%Bfb0y{5~j|P8;d`Jvcev zOZ$?Z#?NP-n4ZSJLrzRj<5zbl>GxbJnyL~pxhto*flkf$skjpQU73d6dDSR8sadLx z8AOv$PEgh9$@6%JRa5rOjRB&mB;i4Trd5D4l2#w@aAs4HmRaFz6nq@?M`H*N&R!VvSSuEB@ zCIAYOWdS3BW5XY_-fr=`_LE#xHh3OM{GY^%s(g}L{^ZL_Q4$w?KqKzO=O(g{z@oy+ zU3{T@k_u5;-w&jz<)T6_K0PJw`59_tb{)k?L%>giL^0lAOC0rl9 zV7Ww}mR)JT$+}2hi|to}MyuB!+OOsL@N^MK&d?={y1m?2wcXp397;()g%ExuZIbn( zRPWdqK$}I1%JM$J?#RLdR%Mxw=B{iI2S8qmAZz(bDLQ zs6bRD7aA}fON$w&l$~O)H+5*l{<7dJiemclw8}WiQ32Vn@kfesn_o-PdyJK4in~^| z;K%WQ<{WpLPaOWw+|DGIDh(&4VhQKlE5|7l1S}C*wI7Q!Udhgn9Hik*#T)UcxI4V% z+aHVUAMteJqZp_8xn2DfR}jL#n*VF~{|x_Y_}{>PoC7L=6hADixOJ|&tW1{zCiFR1 zh*zx7mS%w`qOweJDSyt2^}W^S;9@SJ%v^^dBO~#Nh}%=Ttiv{x{4^b8G7d)-p0pSA zEbWEc2}4+ug$1(6#UH&3&bB?Y7ta6w#rS<@@@G&F@6fH@p$CgA-w3@9ri&|ghRz1* z%{}7sOLo+910%VPFgaXm zd?1K%zr>-dYKt7X$J1HxO006W_32MCv%Nk@jdvp6$xA<5Ddr*LrK>=h-yDsT@>JO@ zAWWY*+uhL#(!>if@(k%jb>J^0IeT8UCjKZ?D)vTVRQkhXhY`-_x?v-@!aDkD-y8HF z3_3es@|#tvfv{?kti-faou=A{653u!|Jh0^7Hm% z`%R^Djj+5CVAT_=qaB6UlESY;rQV7qTx(B=X1lZ#@XV+S`o$fsVB53pH*=xgCj@*d zi3GDIhBl2GlMFG+(&?JPNt^$6Dxu{+^(%6votZ;TM) z@$6AI1K|5#%O+xbXs$WqDDw6koZq-p&FEA`{xeL?d5*l;Q*!3c`uK8`flIy!Zegh|O>=SDA4*<7-UKR>j~JI`)Nw zY3moSKP%|QjWV0)+E3R2m;_j~-6wSu5~*6rH~h8LkD=TubzunLvLdSU3~yciKkBE7GdN<Rgm1ssNdSjgC+UE8MLAJ+02`Dzw*yK51&C}N6U_-``iqBki}B9+56H5Y){Pt zcxs-eyfgEWd67IYm28s%3h+1a^3vju9SkcTbzC=Zv8 z7TGA{FPxmC1m2I)knV@OoiUq&X}lMMR1T-WJJhM>y)j}LP_dXIW<48 zDBgI<7IgMoBqDMLj)6NOfn`|)0ZL(ySw`(_#TEMKk*6z^_)Nqg6B&YF z5s9LLH74g+tLLwkV2Cw~L|F2wk_fYZl@u#44p0)|6@IMt0ZJkiN%EaiWn|Q^?Bov# zKW;VJ$wMW1k)6EQPJUr2$x%BwQ<5v}Pt;!=Z zCEAp^=>%8iQ%SL1nHMV8Q#r`gHb`6kB1)9)grrsd49+;IGvC6bGxN=HXFhz07k-m7 z--iho;16jdFyKS&{u`@Ne(;)lm2^7e`XiS?%xEsGu3@>VZx!=65{CK&@B3aw){58oK!+FHH4mz7`L@O3^2Q<{SO@#If|-*Dfy2PbXZOZMp*8WwbKI4G3|U z=AnGRb9z&J&_X&NX3xQ;Sr*ja!k;;d{1C~v_h(Ki;P^9dq>6IA)6<}d*f)_qxmTAy%WW|0dt1YD(k>B zf99hn@n`-Az9a+8^ZP4r=JN+|R4l=E8zdNDEBiM%F7uFdKwj911M<-5zAUY>F3qFv z=)uRG3qr1jRyud8%Sv@Z&QguH!Sl;fJ&~UhPvi(Ih;J+EI?HFTr&8o!FYMi&x#4BW z_ks9mf@Kc-$3_Ym=UVF~!APT=6a! zZyea@HRf-z`aGKtygIxBy-Aaf1$WP z-hJYacb_sL`T(VAhz+Rn$BP3R_s7$;<+5s5HBNDf6#6+5UlmC6#~YsT#~T?>xBc;k z$Nlk!Xe;DobokSOWtU4mmC^~-`;+_Rt-e8ZTw0%B`H;Lg-IhnY+m)*;ct+~xI1W5< zocZ{ibYFZ(UY)}77{}S1q-UOL3?aN#Ws7^}-N!bo@4h)U25q-IISH;Xkmi;*JmHo% zRMaZv%D6_PFR^XKL-X4?<^3+?9@9AYcQ?AnD5t#P$|-Mnic{X5IOW~Ih$Plq3fgbu zomYy!qQE|xciu_bPI~9rL=EB7oa3Qq^97WAr-GwX54|{Tgf6i$o9dyr-|@9;b^O>O zWABr7HAJf|+ZG=(@n#!QzJB$GB5S!+Z&5+qMQ^|I*AOSY`#N#bixnEX=son6 zN>vVet3}k)QDN?^)foZ93LtWFp5Sqq*ZaltFL zgn!6!(>s4PM@-^%CnWr8?33-aT2+;>2(q5}!#QuFSXH^zd5!&E!uWW@jomgjjd2d2 z@IlU>dzmr0-f;HwbpenA8nr;S^NYSG=C60J>dC3ZWG_@ zoT{7|dxZRITsfK8nz-pCVQooHA*t)@O^1I{XSAwge;b?bzN%)^mtSmg&i~2zVU*?p zn~p8qyXotNJ2(BS`JGM2b`uPk^%ht~O4W=xzgwsqai~SRE2xpbsV4jNHF|r!Wckp^ zLJ5?fq4J3{YxcoD^~o!rUXFiq*8g_y>m}(iCn=?N_$9o32>RL#*NG5@!jdrb#00JC zPUut;y`3fg#7VrqvqZW7k`B>qxxzEGETZlC<+Ss~F8;qS>gUdlO~qqC)ci%XFrOo1 z$G-TO|6fSjhm!U$M^l|P=BT_L2e$yUd%O6=LfL;%xIVUhsA zx9*!|W(AvHj2HZjj-yUtbE$m7ma7n)9CsNo3e1+&4uhupBcaC~lOLs6l@uDekL*5Tn%c}J0UZrpL_#-{qv;s6%55`3;(dzwBt_&HO*hd=~udA(^rga z&AV-SQPj0ZKGfMC6m8YZhv)4NilSbS508IqdU}Ad?2Mj5_ecUG-H}H^%Oru(@0g%f zElko;TKg3EKTJ;r-~l$a%8>$>lSshQ$tq6~^7g+? zPf_Seg>z3*ZKqF)UPXS+ZMu8J;UT5UV?I!So8~?@bC}Wx8$>)EuMPfk?sK7`O1G{#UK6@w?sK=< zSlxU)ihm#@KliyC-HxhEc&g)3z57<#>>LwZT@=E}&9}Np@GbhiUcf;FVAad#{`GG6 zkS&}EiC1kLjvmeo@9Q>7PK0c1Doe^9AxOq-On%5E^`uaTk~eb0(KgwzFh$XtG$rE)U(sLP#m~-^1nv!j;7EXvH_X0mwEC`VxMT9Cr+@P&c!5dtyY_nniQTxcUd!pbKkdnO-{Coo-q0(QhrtNETJ41yi$$MASRy7RD=ORyH@K@1|AQ)hen)5&;9)TwalBynA%x0az!9jKqYe2w)Oq=} zyf7Q6l;6q=Gk|*e9UUZm!ow6~(jqn!T10qXIkn;q?CjTsKX;ccVHTL;5{s5hH}hwE zMO*mM^&6XJj`@`O{zY}K3oD{2Z0CK8RL?O05Lfkc1r&;!QXcTfv)`2h(NSq&@Fare zCehg9@?5GFkX;~Js%@z&q6YgOmGH;q^z}9%)Rrx_>$N*ANGz-?<7nmXaLv%vY88H| zvpn@<3U$TPXMa;VRpTtbyB$R%0dT-jnr1Zs1q9wW@@E62yvOlBKm7TeGO*zcf&-~w zD_nDZN`3MEONNeZrBIL!?+M*Z_DITyKQ990zN!sxN*fN$Db>aG*M(E|39=mpD}-04 z(AbV>jAh7|_^`9qbqY)UjG10or%k9+BiD)6l>`TPv5&)l7yZZl7t6*ZBwVfL+jRbm z#o*qw{s??Y{)=ttG~MRE*q=yL`ECA-{W|$B{1+43%>M)Y7ZY72PJbukzsKRXRQ|iW z6aKqZQCyt=VkJ}?=dU>b#YXcnWx(R;asG=9>?GYG<^=!64$?UE7!x0)l*(kj`d0k7 zp(8&&m&T7V*}QW6WrRLb`LX$DX$>m+N$Ym=)hQWde>%>OxVFLbaei$6J{@R2*I7Sy z;J@#6&VOl(kQDe5{Mh`@BPg?+Ns3s1uvM_yu!PdSP567HVRcI2YGFx*O6;ZYUFOEFUPb_S(Q{?0+--1!j zJMZ+=MzZ>A6YG>d7OrWuvt$b;QhuSRy;9zrR+L*uI778)g8fkrAUA|-_LJ?;(u`(* z7Sos%{UuO_>vE*6I@(G;`}*f@NU4FWpQM+3i&i+PHc#~2$c#0>)F`^H?rBpuN4gr~ z`fd~IeNx|T!s3X&tF(PN4Ltl!=?#0p?uCBQyc>e`Dhgknt&9Wa4%(jNfICJ`UMux= zCtqsVPRv0$1oxu$_b0wzlu%vK4XUEhT81S>1I4*Z`Y9P3;~7yyQ5J2ys`Kd(j50Uf z)v~2!4^N!v<5(9KCvC-fXwU3r7Vbj4i@nOB4?^Z6g8fA1i?&^)RsC=Wo3a2#1q$sK?+9Jc^3r`0&xx2o+xb~E-}cm7h+?@=7yWmtn?G0OqvxUY z?%pxar|p*Gl&{k3Toi^}z59Vc_o%Hpu+4f{FCh9J7opZsQH|bGC!5MzrKkfsN-x{) zmH#Er+IoUtTbZn>8UgBmZ*#%Ec2mLcB%9HmI^cX1McZ!M)}NCIQR|IxO_9H_HaHv& z7#xfqQv?$D3l{hb8Wu9q?G~cFvH1<~?=RdC9A{(pKkP(6dulHraq3Sz;uKO+C6pSp z|FG%~)k^<_UhscBKtR-ZIMag#hpgf!@o+Gr0Z*g4I}^`4;*F|HxWpGmU4~rAuw`V3 z@1(>Q#2P84$hVXo@(2M@e~h1<_&5g4?_#Dr!7HU0=cpTN2>QNGH|lYOGL(%?Ru1Qu z7~k#S6m|}B4Ic}!!VymG$H|y**lQE_D^Ct_OD&NX8}%J+1lQJGwRp$`pZ6EO8GJ?s zn`Tu0Ra|grp7s-*EN?^7FKN^~H?C>EO7P${i{0vCyNnX!xVq9V*C_s*T!2X&+BLvg z!E?UmnTAJ5@k$k=kA_-li-x#qG|;_~Mgx(tnOs~NEGQ}bBzR6hZUivzUPtsvddN)o z%M@s}ssVJT#5mggoK1K0XRev2E!l%ozVaAMO@9S_kX@)6Co<`Kz{od?|Hhq_Gr2yG z+c?eQ3SL6FexrBVq!+JF)N{Eq z^+uh)w5VV7iy@xF1Y;!3CvFqQtKkp2gf7ru^jvpe?bjo&yH8)Y?#!y@%hsKl?SIMn zB)5)Y-mO)Rta@~7CU+ld;rCD_Ti$1vqNt?wKuPJ2@FyIe%c{nss^5@oZrO+kJj9PP zw&8czs=9!jJD!QxOok8(hQPI16TIfBc=NRE<%%KK()Z4mY!4ePa+4!)a<%M0vPK47 zq?c}p9vPzFR5JwFAp5gCd*Hv))^%eeVid5^K}Gm$r)gko9Pw zw9(k_!E^Bmw^Ud;`YdTF^3xXyCQFN#M8<9pl**RHD*-}ivNVZg75O7$>qPEG8?#_` z-j?~yRf6i&k6D%8^&HsBumiP@mW~+^cU>{kb7iwAy~ZkW=#jfk{NG5`M@1 z{%p-Oj+-y#P^+gtlErB3N8re%ppkxJy=l-(S1Dt9B&$N)yv>LjVbV)iT_vD!3Ze9X z;FSNY*8mKu&Nba0LQz*K+7QYqU3H~o?vN}4Mlnu5ty1Xq?AI!;%{Bi=oYO~&Lyk;s5c1zDPsw&GUx%*9#T^cDdA}Q z+FZdd4_)^gr}_$a1WUc)wz1HF44w91O~Fn!s(w?e4;9p?zJsLFsLVL7Jx(+1=>1ZcWp&m>k9YeMnbZiWt z8F!!ggkasCi%%!t^m@`T8>qLnYb!;kU2;v&P2S!~DJMLs@564QqO zM?mc-`Dy+h@cK(P*}S1@U3xb>>|MG^TJtVF=AQCQZ>{oqB(cx1xDw&vWY*hpFjoQ{ zzgUUl`r09fyxxYIxrPn#`e5yatE4l*Ebb0mt(Q)F+!3-$y6#rewOvWq_hs%fjz>Q~ zxpejHH&wqp$kJR8fMk7Go<*(-rP*W_c}bUdM679F>zXQNr~L_0*ipt#qfg{^#K6B3 zveO>yT*CH403%J1HeFT;B4Jbk#Lqr<`aj@5-< z^F?N=Fu6NmHHYuUR4MZRHfCQ@^HR+-;QI!_Y^7YT9=jZI2QvvnXfG)40<$%|!HuFL zcv@jb#S^CDiJNM2Idp>;vTz2&mqB&NSw&tpb>NHu8wu^{55qxfj&R|>p{5Ppctqw+ z-I!V3-k?TIZe((_32K$xG$^G3z^+xb5&MqF`OF-Ii{B@SC*w=iE{t ztCAe+DO~L3$_KdvFp~H6jky{4&y32$_dC{rI|}O=u0TjC%Fvotxf;|JE*ha#F5{t~ zX6f7^amNVZrqav$$p^#hPF??? zuB&<^UMI6~wFMhd!UgWLB7=&2Mq~7YOwXQqs19Ac;rB9bsX5(Wx~tgu8t6nr_C}8l3D*pi z+aIDw&h{Gb7JEJ`zUAl*#h&BE##i2#Uw`ej*SJ)ot~e4LhJI+Bg*f*{d|9qyP5+qr zeYnrl?DKr;ddC|*n(1>jx@tXp_0n3ZyQ$`ZVgCC?7mr$QSA$5cJ&{41zdmi@w zop4AQUbXCsZC2kZ_>hrkR9kVU$cc$?q~Ob5@B48$;%Zl1k7O;$wN$z}c<)>}X2LbR zzn2PMwj+5RYVK~gFATx;pMk>GveN>t{Q;v*oy;0W0P~Nn?W^0@Su|?&dQuWx2LjO~$U-+nX zCWHi{gR3V;`rW`;u0HfhEuxI9zKTTr#!R+YoJ+Sc167Bu>&Kq9@G*5&OoBett-tDS zoKm^8%pEY#OSLELA;O&Ya&ZR4QuP%u%Mn|-$R#rMt))%J_@GtIXB*N zu-lBqFm%o^zp*6{DQ@s;57rgb6c@ZxU;L(Yd!A8@4YhbDL^UZA{9!whrDs9~qb~o* zm2ufr?(%u?qSp3nu0|EOw@DgUTio!XTGmH;UHkGtzF@G-VzYe`Qf1nQ=k93Re35=ta7?O?+$eGS zh4AcqvXXtR>?ac<{Vb4EK2Cq6FY~w>i|$JI>5lYoRQN*|+HG+I-Bi7Ld0cC|_iFDo zRW(aa@xDww?XjVXQNeAn)Xbg-l-UBlk!|v5-$|_KhQN2>*6xe^m}jKvok={>yW*V= zn&%nQq}g6HD`3Q%okX)&&*Ba4N}R0 zD}o@1im}7aVU_21ZR8$_tYKp>(JG4|0`297@Td9Vw(gD}MCp5h$f!lMiH>@$m`%L( zzOKYE%E)+8?yu9i@>A68yaBBuHEQ&6G9ha#`9r! zZ9axmSh2V44L9YFEzv5^2OO?jzFk_P$5k_h5gW4*o%Ka>9!~-rXqCTFK=)ois?bhW z-<}zq5AYd9NUo;X7~s$q!Y(F*KfDokNo&^hS{{h$tJj;VU!DG5!$wWm!4Pk z;R7qKxvt{M4}*Fp#W=qFhmc%lDwDrwRKzcRV`!X>+w$-j#le z(Y-EaqF<))lWnh$Gx&x+Bt3GqG{EWna6aN3y5vf^n(L$PSX9pK<(H zKSq^?w$9hhymRHV*?YRGt>BO`D$CCI^)-?`@6VewetQ2!e$+*%)zaAeR)3aRl{LX@ zuH zt?CK-qxiwh{-dg?FncGziVn=Ya;eDd{UkrK%62ZTub@n_-n-N~VVb45H`rtBIiW`? ze&)&utu}kFq@0;|xvFGTsrngr4nJ16Gcbi`8$606xLMf79G596Pjlg;UY~v7YFo&u zfbt5yL_f{|a&_Iht>>7%>&T0vP51C8sQ3Q@G`TGB>-S_J*kZY&KKoHJ2=7^QW^+6e zy+|5;jSt!jEUeDHhh#y89e`u-vy_x;U`|C*Qh2*pbS14)cI$!c#|~tonbc=XS@~yu z{Sk13<=al<26yh}=9$qyk7Vm-gnTr!f6XJ+RB`2UM#Y#6XBRFqYKj8%eQUAP%ra`D zFyd-vtOCj&d!be(7gmXm0$5trjl9Gb@W<{yw#*8F00c&_VzeTIkKwZmXs__566&)* zbRMlK4wUr+Q=v3Sw%&xY&AdZAvM53o$uoI$2);i18m9*8ofLmmS4~0lzqZ@^E#HBv zU7Y)B==%cR`5DWPT*F4m5+{e|$*!x_GNg<4{fyJR2J0;DHA^l7&FTFj%Wh@Wx3uj6 z2$yvm*5NVP{i#B$6vZCy9;a4?zQ}X8kk1#ndR!!>K&0b0T&5I3#6IS-rwh^K6^BO zg?z%Fv*L?)(MD`<$)^yj@kF=X{Mg<84P#SqNOinQF8!`A7QW^ankozObK9l?L1gd@ zPS-816*4K-*1lEZ+Iz9K_R1@cml$uB*w_iUc6ncvMLTzMH+Ul<*5(IUOCNx8&hoL{ z<}=>&vf<|Q>|zEw)fz{SdPc(La|vFFQT*G`Dmwae$) zMr-sTZ?yEGbe9(fxoM{?)VrSbs0>Q7 zTR5H916UO}zkezCV%~hMr1W2Gl3jjDq~ARO*Qd17>xv1HeySFqXJ@fzpN~lYhnsuO ztM=jPP&t5N#(~H}mh0OV|4V1v$3)w=nL&5G=d5ij1PF7~&P)K6qTT;hH(u-B97HFk8caR`MS2L4NFK;XZa-s>qQr_xfYSc{d(ku`hXmLa|Zn!ahj8sa*kM~K?Xj=Xnin@y48 z&mP^Dwe+}Sl-i&@w80 zOrdd%Tqmh>t%8*P(#;M`e^?adYU4ocGa>N!dH}kMZIc<>Sp8BCb?8m4CzYjgaFzgvG3m^>UN1}2GjwBc z^Z&=%o4`j^osIu9Bm+^2Hz;V_qlT7Lt)N61A(DX^xdStTvbt8w;!+n1GYV*6U}hk< zw--}eDsQVTR@>74TE(guK_FpC0&XlSC@KL3?=UVwX$Z39_kGTt$%6KM-~Z?T5WHi9^oU zARnkad6xP*Y}l)nzR2qJ%!{J!u#MTrFs>=rA7GM=L9&b%QeOza1|3^Quu7?K?B`fA zbW`Oq1UE17LjJLhdXr0D4B$KNUQu^}O5a?~6;tn@k|$PDL@C{HOw8u0%{0IXYKYt%8$AEo+;#a z!V^Qb-N2-668nwe`Di%s8LM{C z3JQw9${pK?dGomU$ts+jBtjO6+Ng`+z`IOvIlt2|m#YTcoOb)3HcvU8tsd+A>lI|fgZ@Re%*#Bf$?AWaWD`QNS05Z?wV_zp z`=vI|<~m&RrIy$w53O;nA@5dg-d6SWy&%guJ_};6)e@_DR-atYwWvk$RK!~f_#31F zx1_ssI;}h+#7{w-ei}kn|0ZFdU%bVD8=kj<^hD_Q=Ts(Dm>CC(Of?*Yu$}EF`LLR# zTF3WpwY0awX%z0AaY<8VU%MBx8$?}8z1b4VLS!E$w<^vy z0eLSAuDq9D-uICAuc`Nz^y$R+Zh8MC?=vIDC-3Q^M2N3a*wGS~GckC&n5VL+B)^i? zC9a&`Xh?N{oQrpK!)R&!BHKE@lKUFJL!cEpy$d3KU|7O2#c_o@eqJ=A*^4$G*cYPYczLk zmi!xHkZ*2^CW18mWyUGgZY_iPeAx_NrYC zrMnxls`(V|uu(Jn!ko44-iT|Pj~TLA4YQpf&4>`_pMf{^I#p%YCoA9kn;ci_xO!9$ z%oFdtFLKZQlUZ8>oD(4&D<$Cp+49Ew4nN8eS9YdP!eWq}>DYBrdzlCdFOHvGr*G`5 z+Y6`uK|zPWav6u@b?}_T>q2K%_Xb&y%>q)a=IJmZV^j+s|55Qt)~(xWgfq$v$dLE0 zEF>S$Q+OmNX?%+O9yB?&V&JfX3~XBb7FG8scaSvEC=i92E?B8_puL&`1+MF@VzqS` zQt7`aH~X;`zqRvM`b0tq7Re;i=FR5gP)_d``8Y`C+0ek!WnB6y{ly+LP@^^YK!-N( zdQhmFPbpqvmd&O_mfqWD{s;C2fSx66?+z__vA`8CyPDEqWHCDc5gjIQd2NlGG!@9jq*-3mDzUc#9ck zk$(qybJw|p-jB4zSW0E_JPkt~Q$W>iKYrz5Sv#bicni5cqpMS=15btyzi0GSr$4+P zJNo+$Wr1%RT7Z|jbX~feMU$*@?VWzM?YrmNzN_ZDOs8Mw^7}iT>PpYsB{q>oc3hz# zmlZJeB;>7IHvo2mAws{>y-M3Cp58`xBBb}br+=BcRIM4(Z?$IruEWhwv1>N@|9<8ae$)4oRF=5UVT z(Emv2U-CFI9NnZ$$h$4_KoAF+;K1<(({^?kif({ptYs9mM3wmCnVtd_Xz@9nXp32VvZl_QlnqH~i%(`(D_fA+%UW8~y@9tE)oIHg-Qm%5%G_MrFYOhi zF@x&G6^`EP1J9H1rb%cI6n|b0r9xKk5C4zm(t3E_pt5lKOPch>WI|r=iY%j-6;w;#K9aGG zmp$ym5mS=q z4z5yu#oH7Ku?T;}qc#>`O<=S>u>Xd>0j~`$xkiT1^t>t+m`@4b>->cbiJ(cGRgstB z30$NW@kc2A%gb2;#hi%m!v{KfCrvdjr8jP%N~>%PKlYC{G*fGtNv-y^pHkHDEcmiIal|#MEBAN>m?r>z5c`}#+KA#ZaQciWPNk&i=AS6#K#A(toY{xjPPqGY|ZRJ z5lJ|72v;1p-Ir^&@HJq{yB^MO&2W#f`VX@6NLO$6`Vno4&3dw+G+uVIz^~1JR1rtG zMuqO+>q6ST@G^V(bg2~=Ay8P)=>gPhhL`CRD_+wl;vL-UDn5piG=A8Zbmxcl3 z8&{vOv?6ir5<_u`XDg401VRy{8-ZnrTPYq$Zsy5LL*{v(a-$m+OG1~Fy})Jq(hNV2 z&Ft!mUMsDVMKx>`x7oGgHIf?r?T~kKiAIJ$v<$=xBc?G>}AI-Z1f`Bb_R4Zdc@>YSr51B)hlOzG40_V`F=^XrXSkFPfv17YV&HS zotb6La;JL^w{ox0x7Z=?rFGgu4Ve+Au#orAw9kTgV=}gS+AN+Uo@_gWluQdZiYCo(x@xNW{bG z4-dslc?-<)UOv~2XpMcAY6rg*%X2%8;3m|R;himt zchzN z7f5}9JP@vYyTcoJxH4*qo=f^`^^WHRXn*+ z;W6A0oY*yF%GHR!34ANXTij%Q`L0;)LAarhAcJ0gnY@9S~&-Lf(?u zMH1`=-;RF9^yzFfbmSi$N8X^(vzWphY#{5IPx_GDI{U49aVc_+!H^MCi-dcF6)uFJH?G^8H6Y|$19zib~*$X&V+^4?e1GUw}{ zH5-cw5o8tBsjhq?@UKm6MQ+N=4S?J04;j&FsrY*DrOmU^GtiMT*&n0U!tY1-j?r2)l^oo`CTbPUn%X7Zrcu<* z;p9uKWsf|Zje&ULVwYs_N@|T$1W{UID9?0rR+Ea+_nsViGu4kL%&^@9)C}9iPwLOo zrZuw-nXfuq=GnX>#k!)+-^(LbqgfwHePbI$E&P>z?)kFCDg84Ag@7MY-$fhL{!rfk zL#Bu63Gg05yh{D#kCY$72~Tt5VY&r<6G&qk`FYbtOL~NcjJNHNcM7DX7pU@{qCd$R zaL8`B?*&vqk9Kw2t9ehgyRKHlkjH!4dY`*gPwI2_tDXZ-%bMZY!%yl>;0uVOVRK4` zf|1-tX{PFWeq;#aqj`+?=hx{o6y3_$po741myGH1No*F(B9-9)^ZCm5Dj<8!gs?B;;n5=DnsQsj|V6|9d5pl$C#vyq3fuyiToDuX|F;u614y zm)C~#dXw{dA3ye=c-^i~&Un_6v>vJU3cY?}?a3hmv_MUlNjE<}%g zTg%4O>)fb)IXC#TD*30~-r^e*vhKh0xyzn$lI+gL+L&5;DpO08!wA+(d+q(t#`M&?dh(o%eA)a(Z8_)Bu*>u14u0Cp z6R#o9|6upH|5&RUAJq#HTJU+4!C2G7RYd4@)nX3c5#N9`dT&H5z+S3BL^1 zQeJf&EIIW?#(k3C>}xL#q4%fJQ$^M>*4fo}!w-xNLSp~qQaAQtV?a>iP>UHb!J4y$ zn=-ge#u8SK-DIRV80keTE+Ek3zbtNH?Pkk#Fq+OJe<*oF#DwG=c`Pcp{o;g9^|#-L z=>Te4arvl`qk|KEGEO%NR$TQHN?9{bo??v3!*kzlSKTH10A&l2kM6i1-d89jog_>RR?Y zbB{bP*9%9{+}!jsuH#3BYYTcPaIVu9i2Q}PGr2LBonY?o(9mDo+Sn%lbuwvg5)qL0 zm4}}4E>GPI9k;KqsypH(Y7Y_rF_x$ye6rf*%A<+09m|zP=n%}zXVfW$$nOC#WZl0k z!~e5%7axHBY&`E)TtH=nLikyTz8Y{0!dou_Qsg~(aQjuqTJZ{;-9PJ$y@WMzNS(j; zGM7E=Ur?<%b_sHSq$ir11iQ57SczlbqU(@tY5d4#+Jf#hLEn=n^j(&eEtjysh=esm zt>~TbuvX+gEB`God-m}F$WrnnuIXX{U9=y1nYBXA&+2;$&<rxwk6g~+3WlrUYWY%}JR-~qI z=k&)KF;{Ia^cC}tv_A83E8JvTqn_Lxt}C|6LDDJiW3Qh9EAW|uf5l~_QvD_rGmL!auY3Uq4P*_^b`^;8pe z**|kC{1m}T8gjW}sU2Kb%QBaGORj{?r`F4r@Y~c1xe{x3YMFBdXn#>xQtnB)DwnIr z<;n$$Qf+QCxqjNYzM1P2koGL~bwb*dLbt2h6{D6* zDecIKW0&Z28H;Xsn4KwA7@M(@-@)EUvd1wWMy^e@^1hu9ElGXFz0BH$BcKp##8xHs z>f81lTDy471?*}^^7zo&yQoD=#zCm+&Y`ug@)-M%fAMkZJRvR7d8MA=*8cHikt8}` zJ^H!GkF$^f&z3$|r7xALS^bNDF{_unAey+2rB_pWmXtorDLu|9{Ua$ojna;M6e~Nc ziWM(tY>E_Amr=4!UbtbMtk2@sVvKEJ^WJ1s97Q2z+j0bZ2oc8|+u}27bTisyRvhj8 z?PY$lp9GHDA5hc`9L=74*Flbuxr(&r$O$JtPuHmDvcCC@P1WL;t$7@&?-Z5JG6A5V z;Kc7bcvr|cD*43tT9jSK*E}h+_wW2^Uk~Ix9k0f*roG#o0o=A<>rj7&*K}yX!5=B4 z`fW9iSN|9o`?a4L&N&sU9Xv<=Uc<_Z;GqVhEa`~85r_H``zUV+MVzs$T0lIU^%NQ#HO$FzCOV4Ma&506c4;bP})C2yCm5bkBy?LNdpk7AA11_qW!W+LyQqpYZo4Y(|N zpDM$^u%DnDLs6p-99tb3qg&G`6s?I}QxqK*_8xyI9`tU|;u@3- zQngh!_i32gQ~!XewJAfGe*~L&Zu*lO<^~5)DZLKT?l#dj%>BF|mkHAv9WB9jRFS`U zwrJ@+C6tHoaU|Nw!{7CV!)pHb(G6U164SscGo(SY-zZ-8e$wr_Q3BPH&6L5XcsHbM ze{`&Mg{)Kv{Y`4=uxx(pC2xq`P+cR^T|#5&WLADx)1ifRTaZD%uL3!gR_oD)v$7q- zg>DQl(9KbK#x>Adf!+UBikjCGJbRU0sA$3Ahne~?r(jT5=sr4{y3g(H)QvAr{>T3S ze9gZ_Gy~XD2HJg!rLLiz&-aMamft9{x81@+30GQci=`;b53}&f@p>$p6j{~6Ydw=O z%TSp+l%m^-*GWn$910bvAC)1ey{kr2Wty?nF|m_$BUeEw=Kobil(#QP9#sK=vlP1?8)c={Xy@l`xR|8ZJIzT+0>oO$$!0ic zN^fi@A^d|f%{Zk^)uHs?PQ*vX7NA=dHR7^uyd_i?g37Q8*!6-T*g(*5;vaSISRz?_ z7HhvDnNLQIDl^ir^2f2zDnb>j!Z&iPw0K6HPD;aRcu-BxgVcy80ce8jwB;M^O<+Uf zqtp?TW=_c6hz4wI9e%D`;RU+&F!ML?HJR(u=gE4+eq4rCl!@_2PbowakzF9t4H+?~ z?Y;#&3}HVV`Y-w}aUzI6dS#v~f4K6AHqmuSH+>shW=E%O~mC@g_xwiz0FbR{K%y}VFV%0W!RN|RH3`QN(jorF2 zxw78VyEtPhEJstlLH28Cpw*7Q*3NapW9sy|`yBni0p0t?_vr@Sh^Bk1ypSd9Wz|Yf zMqNYF%3^X+a=1lfi?ce!L^UGkAIicuiGW;m^Zhmo-!>|Xg+ZVXK|2y#G8PGzvA(WF zH_Hnt9o^;krnKZrV$;x_M=sGP{!5iNbB{?sv6&n)mZ>L3PxYjJp4_Q-D?xKB^&yJ{ zWx->=j@tbqN6reGbMvHOfq65}377YKztZ9nnadOF!)Et-U-Mi6ColR5g-3A}x^M@! zIxQjdokzmid@)1HbobTIm3E~?s*F6XTRJSM93riW4oN>Q@hM+U*R|!#q%^r5a--+O z-@-Pi?sd~`#^iGh4Bi&)`s2Fk%R_lBUu%gQsnb+_Bk#iwhDa@`U(&>gLoubD_W$KP(MzoJq)Teq0*<#A*0ne^m|d_z?|Xq8bJvua2h$ zrqc&h0hYv)r?9+<`wU7^8N9|_2IupBDUBt!qT!PLELZzj1$6`uZ$Cijg}d`E!UdwlV|HByL1zx(G6e zHx|Xraln~7$W68G_-!?<0q_2RHtb#H2;<$YB{l-i2=m;=fU!3;aC%?d<)}bg9v{PJ zIEn1ZX^smnb0fc@t!RTDU)drArX|ji{gxST;AK`;^P!lQhXu%F)ha?;L@p7VFh7T^ zm3dOunwlr<$2gS!5&q=^m!U+#N$=OR8n3>T;;q=?OgvcX^Lz?bLTJ5$-ufteVf8pD z?i~ z+Zs7JEXgry++rOx@gS&!Ah$+-5VFp#4|=x~$+|*;Mf;-8L_(#kZjR%;g00aHSXSz3 zK}HKva;3rsRvg`1u~bVOSIq^M`i-&6*hf{{=u8n61R^tB?Kj6t{;TDICqiamDS1UJ z15bdfCAtx>k)D|GLiwTlJ>%7C+C@&$>(xW4;)H=rUJZH0DjHyl^?vjIs<6?dCFcV` zyzB=TD65JnBE>^va%E~KyG_NXMV7Hjm!E`I2hC<+8IU4Sha2pi7D_l&0CdZMwHlZk zQe@V|P*brC0=PxEKz&@11Mt+xU4Se9Qa*WOzNlm(S-##?AI;9=qdQTgB)RmF%(-6|kbJQo~NGhS2=JJ8q+TJxMr+Up0Zlh7QT6Lia#nw3c#&?5W#9r!>;r!iL&@01a1Wk}XR69ci0`lS1z1&8 zk(fy;){-wuV^;o?Y;pQ+T?6YDCbi=kmbNK)RXP2mg(p%!WMnX02^Bzm)%JpM$6D*l z3k71G_-FPp_9PyG=jtlN21OT~$2%9&jg{RWW37tb6RUW_6+KNiJ*SDz34&<{YPn-rt-dF`0zoQ<>}y`UcJ1VxgfQhKzLqe8R;5j0Y=dxOS~fblgP_Dq^=t9O$Rv{+?Bd1kNXI$Js9r^PR0G!dC(1SqqMGJa!A9UC|} z0y;rfXsh^b!WyNz8b+40WBh0Kp~uU7Rsb{H7k)B3xf_Dkt@Vhbxo65iqzjN+U{BcG zKG70)K*3>iP_eIhfnr0^y=)g2v@s{e|48w~2WzIvRM(QXfY(^XZ@KzVO}|$A33w|s zTf?JnQq&w@q?l8sx*1j&zwA;VN5B~(YjFe*%27q)4mAgLOwe3Y1Xrei%-&6rL7nh+GQI)vZJX zgX?LDQ-BX~?PVT>yqCSjPxKVw?>wuOLRQ%a6`5LkP)mk3q$0LJYoq};bkIn)^g&$! z=_^o$#7?5LKtuh|LI8BxH;qI1xaSUcnq0A^U#+004CMJWHa^8`s=x^fq1yOvw|yyr zT}bDNyCA)wxuB9)+H&#U809XntXQgYdCtFGaVZ!oo?1yc9DrR{@RBEle&I$;+b^Oy zh^nj%4V8hVsmm!2%`%f8W|EY>%F52J^QUj1Enmbd;;7&iAV!d==sHN_CrFTLC2bcY z#W&9pBq4})SyCx5ZGEsTXMu(krs3=eGJ0+q*v#meW4aWW)AEd_H0VCrZ|U&2x34$5 zZ$$D@@`jdJK);L@2IS*d+20<4hZ#fiNZY`Wrv6LDRU}ODeQ)o(ctj-z3+!foguuNJ zBC!%eC2T+?s8RY8m6jJYfuW3=+B1&QP~ctsq~n+-r26lbeaP?950p{EqUyyEDoNZ z@ho+KYwGPL^&VHBmR{x5dka7I^S?*oYxJ5x2wduH!6AYMSP+`gjWVA+&f&2j<_HTs zHLaRNO)9LzD*YVY1>`eWYMLxHS^0mE*A+4ct_~7pxc^v=_&&)80rlF!AfzIT>V7@Jo zZ)ZEu40gW#hkRSDzD)=&9sTaBaz#0pxj^x+Q4m`|k;z5#;P3QU^zJ70*v z*Y4jc-9T5t=54S!g1^%X{pQf_nUz(x*-G?ZnxiI>=HF~j{4L{a3@tiAzoPU*#J~rQ zBRl-WkZ0yzS<88Q{VGWQW$1Fd0x7v3bd;CUHY%y|n zH5u!_$2$Mc2|Mtk`P840P&om%SRF1FZyb!OqR=^TlrF{_%0tFa*l&z4@KvfU4W6l5 z;u=zd0WN}2lbYT}vYfUBKl0G*iv^-ya1K+cl`aKkzZhRz$aTH=P1MPs2An5qwH`xA zzcF9r5!$A?N_9>6dGw_bR&Fq)cy=y+3Q1kMmr+$=S`c>zvh;3Nh``5SRgHR|Y~V+v z09+l4COIpQ-}rNZD)v+!KV%o}tA17$@)I@}iacEJW`g4SOXm)=lVZCSjL+5)c*F@W z7+(!di)t1L@>LWQlCWhnWdat*q z@F;AomhSpu3xye@^Hin%rknI9(KABk&+}4+pemymHoYjD_v>b`01u7m0n#Wd%$N!@ z_`{G9RUyYz$VpvA&1#<$G_Si`DJqPl0OM<(FRc|t@`L92PPSsFJL+xFyuE;U!Yb*R zkzB$Lp`QFTl8e=~5UPBx!QA<=pjP$dJN1zu(DXbWliwDj=3y&c!`D2hCGFM4c zp`1rRPOEJ`;P?=T3S=Cq(|(SEY+K|S@5HA30@oU`!-^`*`z?tfw`cQ1#`ouvPvspsb_JPxZPq)cR*&z& zJLW%Wz~=68RA8hk-Wnm~C)Bfrm19h?#&{yr%E$K4=#K;zB<`iJy0u6l(ONZCKr)g` z<;N-&H$nU96xZ=pGq{E_CrWWMxs1D5wM?hM4?mzoJpYjyh?No$iVOK{mCk2zHHpdb z20*GG2ppMNTrbflf`{>BwX2lcbuur@H@gSNHKKONxx|1qKh3$ z$l5ySjm5fDNz2aYl7XM%DGnI!V1fu4Eh>U2tDk}H@>HC~A5W1+onackLd?ACI%v#y zhP7TN8Ujy}W7_;5(+GL!uHmN&-QqDF6MyR*Eh*B=3DgtDAxQvB+`~qUge~vR5YoYQ zsZ}W-1?55v_M)Nf6l7ZRh}>$5kZQyRp$O@G_y#oWyiB$rK-jnQ8Gy<)^HRMrd;Qlb zS+eRtQ$x{wqfOPGuN7jm{9XSalT}YTs_E| zj;!M^u)#(!xuzC5S#%?69(HCJKH~(20n6#?Q?dj^RRfwr-qy&4a9p7bmMEFI_Tv8% z{^vY0)uRkMpJeuB8+Q_kej~X!dKCrDxUjY??`Layes;yehj0+tp`MccbG=#`gg{M2 z!kwG59%W|=_qA_$TsGgTy-e$h?UEDrH;kOQsvOu%wXmYB_Zcfi8^eP2u2jr6yldEa zMpg=;j&a@Cv20ueJ+-FKb@-#v|BcvR)V$NpTOjtGkrKZ_UW4g*e(N5@;cucJ8gCf{ zbDVq77kj2-!RYp|Y055Gtv)|vd;+FdHYJI_(hSFe2+{(^epH)eCVs~muaJ46XnsM* zOT|)IeBa>sTjjn==T7&&9{niWOvqF<1g)Rv1tg+k9kuG#^}?ZL0mPk`#QRZ6@t78P;Bh!m(2PYF$@&uq7Upjz||yv?P>Uk7U>bsk~n z?n8gESCE+DOAqaYPpP?JEE2LXV`5h%a(RPn7VW=RNitoPqgY#YApRmjq!fT2gF#^Vfvx|?PAX{3t}r2_8&gk zcnezsSuYMDn}|NUCAxbkNw!-{b{Ok?hL-Khyi$glTmph1aH()YP6L75!HKDGLbSg^ zC(e$XP@>8z?5L6a8qgTOkyiK2_+bx~@yn1*(7Q4Eg|aJbq@dqO6YcwvpiIW=LWURb zf2;qS@+4?>eCg*iEioRL1z4OE8}yM}sFOZf`gMp#|SZL`Pls8EX0QY5p+XIK2v$G?#&*lMrX&3wx& z^DO9EQmK&scgwoWRSe@lWbleLt>n*Y*5Sabm0YN!JtMpYc~Qv>S&4rbdzn=-=LCbN zwJ+n_JIfZNFIDo!Drq4rI2a?54yqJ4+A}!5sk~BMV}uuNVT6jO7V5?{OrrcEB%mf7 z$9CujUQ8>}jj8+}!acvv%j+mTiqfhL-K%62EunmD9Z50uG@;3D{uP^WEJldx%=~Tt zKq3J8}649*Rt&R8;ASVY)Of^*P(Mc%ByECN6w5s8B?$bs~yzzK> zb3M!DvwVx@s)k*U%**a|smD9XGr=}<&mE!+vhq#vv!X#{POJ19OKB7ePDAH$x+xoc z(!{0Ql5AGaa_UMJeq+;?{mjbTEPRaSxo)k;xfpV40A_6zN7@FUaX0x;pRs?Yb>`-J z=4M^$LDjLC&^7YVZicGLc;9cVOPwzR>?j5gvz>1fvhI^XH5_@xk!0-jGLf}1vWt52 zU6Jcye4;viH02tRdpdrU%3-Vk;;6(+8)_`W;uGFd??|11n7V*CPo3Q~I{>w`I(F6a zNMD7Q|0Cjb z*7WQuoBW+LfN|qShP$Vr)hZo9G%#}2_59eyhWH*jq|LnHQeeO;#-M(y+SL5VnIODj z`Zx#^-DGk(W14!EKSH^G6Pn5hbIChFtuPD`WmEIfqXx}!d9iC;QRa~6H+xT&wNJM^ zPdo$^$*p*_kX=CJJfEiIyc=IZ&XbJ==ueeE6+l1#R9=x3oj?V9>xZ)Zsof!O{OXM| z+60kt?3Z}UF%v)!l-^zGu$hu6-d4j(?}(Hu6s z_#928Sih~fU)q1z*>Nu-bRfxhYvkJ+)H3$9ubvR#>gdxfPcJ~!u`%SORxVU}r>y@~ z*8c}hj_gidk_YWQ-&oQl}(7*Jy48P09N2oIyfmD=E@y};Kf-?|9v_Wi11 zvZ9r<_e(0fUwj=}tw2G2pi;~e7^uYga0$PQ5nj8>3Tg11Bthx3m`9R&fB<1$`HNwM zV~X8m=K5*K`l)+R?>ti2s7mtwvR12Pzp~=b zlb4REF4LEg`-s+~910D<3Qp`+w0HVv^e5y!q9r!*sjsqI*!Xu4Uj~{ExWiUddZyE> z4|#AM4<2w2noho3kfA;H6n_Wx){^L&ohlYc74o64u3K;USZV_NHJSBKwewR71+6(4 z*A?n1>e5S&s9XkW*~}PZjkWe={S||Dh7^VU`WYQ4L+F0cEG-$Maa=0F_jaxrnY`4b z>^_iDNG<`$EWRb~q9eY|Yr@uDdHpsjO9CsiedPy-5T{z0qa`h?5%w5ysA;Xe@=8%* zeU{p%YHq9V9ZGbpFJxXMs@Z&j8-0thgKESCGVcMwkYq{OXV*{_BbNHTswzPZAaNFF z@5N?!nGwAy3+k^wzw*5zGOHZU)^KSptjr=w!u1&wp8> z`cxd3$w{Bq5HzQOs?=8spqRkJlx=_hL#oNjFCCvt2J!53=0obsqwV*W=WnzHSA1~> zaXLzk%AeW{Wr|8Qt0Tpo?>htAx&6lttbsT3tZ_R@6<@v z?cT@|g%<44F8$(x_QX>qw9wJN#`Eu^gj;u_tuxV;k}2}~Lqv-wTNGZ;o68MGhFS9C z{Un;7o+$jpJck=e1HH0Qc$E3#4t`d!1!ig-*K<~G=GJb`SDEv+w&@`-Dn!=z+q$6F z=gk`DE4j7D{*QbSUtge{x!d=Vd%J`F`*vr4PrFfgmB1WbkGM2b zQG%bQGjTj7kZDQDm!3KZRWV*=K^nFry|C9F>Of~!SwEf|fzR!;&Nxg!!RM)K`N;8) zN9@wgHA|2a97LGQ7R#0hyMv&lx{4e7lkS3&Xt#`?Wv2bxCYc>w*p>Tv zN4outgTBy@2nQl9{&je#6v{QOy`ntM!2_;#e-8VLOT}1ZO~~WuhHdHYS$SEw7L{dc zf=}-VdUug;5*vO8j@Le(OLHQhGkZ!w1B4zp1qU}wYw7NS#q z<^mCT$w>oFM(eeocxnUoF`PXt;KgChcdZ+Cox0UOM~8TB4?Nb zC6Q!KMWKDqWloNXzws()CSxE%yjjMI`X(XkojJCEEYE{Rp#$$NL2@K3V3d#MPW?;8*2Bg=WN4OXjs(Of=ULx{9(7Z}F2iSkURQeG4MTRkz zyJCmCa`qfV#W5#D_)AO#Y)cj}hYo_~Y_?BmP{#0xS!lm*D88QXJEP<8#^~JZjLxHY z_%k|ZBXXcR$hdg#;fpu&QpSz{lP!UQiji#{a_M73p zMs!)N-PH&z;fb+<{c#sej2O%ZAbX~&sEGMwuDlfVqU(4FJH^!cfQ%c=78g?a#j~|v zO>^8ab#)bfBN;G9->v7cvYWpiz^4ctvM)=B8;TiNa&f$`440X^)-?Nbg^S|0{VFU# z-?ksexW)Q5n{#vHd$49Xc~aK9!`=_I_+ko=F#UV^c0wOXJ+>D+MC7DqWpvGnYzIBzGtco9UqQt* z4ZY)%ax#ktPLhWXp|v0yBd!Y)atnmURZN3bv7XdPh#b)d<@jGwipPwv@5^M1yhuh^r_-uMY}8pw65;?O(r`xp(w6%?$f0B`u-*9biWPFc4t``5 zPKtd?6!^(-0!roL%On#;tAJ`pre#NDY=s>r{Q zyA&`E(xlJqYOMA5+p}eV)aJ-}!JlrifdhN`C2F7qe}YerOuWHZOFn^~H-f{k6?zv% zyF#R()vgzNmV-R&==*@yACdvDkm{5A*UWm z7!xAgO7%vFH(D*k8W;fO?!a$DH*j_rs>qOUhID&Dx+s{`tM8%U1vKf!M7n0v!6Lrd>zLWj}iyFu=!~5 zgbdg!9ocQlEMWKB%JvSmkn*Sv8tWMFB?04er1Mci9MBJzHifPoA*5^LJ!d8wFHcak z(=6Fwg9foQ?*`Gp%+|c}TJMMBM0L1P#G5_po#X`=#C2)K8Jtn+?8mNDxD8D>Hc=30d;^U;BKa8K-Vy%xWn zo|<0vSZV}8pbC{~VeF(cj?)qoil-s>=JaVIr@7z5*Dr+AT)at$K-?m6h-9ky4Hm2! zFoUUdJvxA2^mF*Wn`jVlaR=y_9F=U9ZW#l7(oo#rmF#$3&R2e#mC#4E;v`01>N!M@ z5HfqGwqvx{-v0DmPTNS*nRa!g;0c8p&mYH*nw-VBv_(M3`Ap4$qC7462c~kf=abJh z7oiw0a#I(VC<(VZ<4xf?Y#hhy1xgAVdxM-nVysUsg=+y+YQHnvtNU@d4iN$1N&MPK zb%x%8<%)V#RF#{(tAucrtJCt%`Of1UDV_VB$GP(O3t0vvG>hmZL5p>R2YJnt*ciD` z9HvzAW9pY<;qAiSY9RWNZSUm7#^|oz^ipGf;GvXVtOAG;c_}J5Q9_``OSEZm_b zc<7*1?C=yM3&l#db3z{MEJONDX-&~Rx%u{K@uvlBhwl9b3m7zqwk&NaFooKodIgQK z9n1>2=z&<(`XXt(djlE4YWI19?mA!VxVr_GvCG27lnLxZ@3^~?)d(hOjDuOK4}*qy zCuNx6!OT@BP*qm2Hiq%K=t)v!xPVaiso3Dv7XWPr(_x}Gh&AEd8rIvj3f12#%zXus z5y=t8Y19v+c0lows(^8*_ZLr47reS#ukJA<@4`d@QsSY{WVel%{uY}Rf#{4cv3n_e z=_O4nTCq;A9ya02dlGy9aGieWD+%q1?`dHP&XIG@t=uZT1mBkN?vzTyZ8WqAS1HMw z5L-C`@`52&)0t+^fD}_TdU;)3p1M=d@DNh&D|9CsY?&fu7k-O+ebOIg0S#BDex%sy z2}O<{rid?7B>jT$BzxXjke*fc$uza;?a%qYLbqA{k9aC}$nQw31g?sUfsC~-mRYbe zi=(J96-S={{f3N`Z?&hF$l@_d!yaxR|EQKI=3U^PW*^Ih8`qfHE>N<2v(H_pEqAlB z?5KuZVD(=~QqIL%351Ww#mUWq0u%~~lW5jaffBV)i1ig##{6|0EUuwS)=}0zGWF<| z1h6lXWl0e4Xt&WNh7IyIR8*3VQI5j(^Qjp^jgHo!Ukz>=k^bh(La;$oYmLSTXpwbc zoLN!e$E+j!)v=Z1$y_sflsyP5u82y^tk)MBrdvjszr8Zk#OA=Aq5# zAnphepND?RyGRPZ3eOmn0RXmi2ZSO{QQRq&9a#djlEAVsusS+F<(2X*rTm6E&H#=NaD{1Se;6jF z8W}TBka8t9(Bghu@1;J45HN7B+YA)=#ybZgj2eBTV8-qvc0LCuXdzT6lwUzn5es=M zsyTLpJA{MTxy4h0+5_9w>Ru99;)JuQ?Ma(_;CDBHb2x<`#*x~`jBwU}hp18#IHkrf zXrdLbC}i?@2Sj?3lqxINsQmcdH%FT@NKl#D+vPi7{Q^NS=yaw2;4Emdpg9sx8shQt zzkSdRWej6}O+}RU?B+J41sY;r7aLw#o7f$p!9ZEnmmo`dfXt21R;e@>1uX>i+aGWU zG!Y9oGpLm}X^9&s6*Qx=5#CI7IAGmG&TM&^x`g(ja0abKmRK(`Qv%n9R$pvQCU&ur zI}jdk%yY&raw_jK3}QX+1RmY27T*aWZ{1j>$k2?5CMjstFqtZ4XLC`I-5kGX!+0eY zu##`BA((W~$>i4XCTe4Sb4a*Fk#H?w`^~H69Fw#C5(L$Ad&oOO0v4oM_HuYQ7_n$xKHEYNSOm}nmo{)*Po zz&}C0Qx$s&S4_;K84=)x6%llqp>BsCdp@nt>bpLhfaKxm98;^*7<%f}OQE<;>g7fh zk`1ZHcqwcn^^R&1xtI2irN#>~t+MbaAts?cJMVWHf|6q((0>6ydM-H860&E5bIRZZ z2hNkB(vn*R8`1&H#c5w`g(5Y0f#5{?;}`~`Q{!rTObWGR zq)o>d6^J>WUtWb?EuK3mmBJdK6L}+?^+PrU9fvh@)I+(;eo@K?D(Q8Sm{QJkKs=MQmf{`a48D$n zsk|?9IeNNodPdjDfH-ojKpG@`CurW-R}_@6b{rfwL8?}t zn2VfGoU*1Wn;JkZ&7SFvY7IMwd6*$8E$IkgYFvGF^PEkH8|a!n0Vy4MudU=-;1W1x zaDY!>$OzUlWV)&6$&k)wj4BT}{FTUzHVImlPgkmr%8Y1KwM}Jx!yofJm|WNlOU{$@ zJ#c>6(}*Hi*)${*Z^)X=zQ5OgUXm6^rrT%s-x~#oy}sfZf(0VKccnZiyU}TVCn0Fy zM1kp0eySTFXD5-C=*u1bkYSlSG9NUzy08M+Y(zT-I;PL z-7#wEW#r6E4^NU#SfwF(!{UAcG(K{j!;}y=l0ATj*TFH6hKFk^*^YXUMe%IDP|0zi zoK=_O-EpcgQLFSR(H;`t_!Y8cZz6pA)l6F8FkBoFqZh(2RruWMxgb*IJQ3TWZp}Ei zdJ`8Kp|54v2Gsf>x?{*o=twtK2_4y!x~koAjAZ^uAL@;>s=*(m0Q?s$s}H?3ktuMy z$ep6p#Bg*|zvi@NjbnAg*{A1bd2}5)b)%oN3xJ>eOW2^DIQ4KRMuKOcOhz^XtX^-! zJ5rOx{l?1(pd5B2uOjwH5v<}?OjFjmn^gcM@wz)ALzQ8R*1t^0 ze4OSM@1eGh4g+A{K*I2JzK;Mqd6_ua0tUozqZZgL(S0fDxzA`$eZU)GXIuGgmu5QT zcWsx~#lK^K9$zznVS;SKOA*;?%*QU})^7w}(h>t8abvTwO%}9I4{>hd0#U_gbd+Ma z(9KswN6B~9Sl{N$z93*;4O8p4V~edN8&wh6mwwx?l}%013{2JKC}RwLzUHK(UGEk& zE6`fBU~97a--yDDgt_>DYLrn}ij!Vt$|^O=$7 zGl|u9*W1TW7c)haP3_o*ps7qPX80xTmE2L^XIL4i=S2r&-JqtW_B!X&%Mnlqgp9^c zlCvMJq7PuYV(AbQ>>z9(Gxg~y=-U_^$?*qRwaIg2M~j-9HTH@A(4mRt+4 zzSV;6bVWM_`Lt*1rrn&yyN|$f!MkmprV#FHNA?h~J>x%N`>ZUs$ExqN#6s9mMov#= z^!(K_V_xLB&!`vu9VFp+?Q|dsb(DD9kO&WzA-SF3Y#!h+qIAgpO-i92y3EqgwA-_N z&`pPKLheICI_r9U_m-Dbl2;ItUfS!bI&dm12RNrX{5wnFJ2t}YI_6pUH zG*AD#eoO}Bwtfg>k$&9VpvwW)HDVQfx$`I(Z{kE;DQGMqY|Vz1*$W)7PgGBGun z-JAg3qDa@EdmRcN)`z<}62t0_v1=C6%j1sc#Ep3&QVm=EH_1WZ#M|iR`I3o=kWS8{ zr8I}iZ3W@P1je3rrr@i9N48P!Q zp5QG6-U2MZY@U?wU94>LwOEI%slyfR(NRvTW1eT9; zR!Yc3^L)wdFf?+dZuT!!)_9_5_Dd9eFi3i7Yg9|nI3r}-kyQh9v|r#FAZ~_9NG)h4 zilv>7wLB{l!3sssiDE~1tcm>HEcDd{TyD<%nehh>RME}I=DaKr8c(NHN?lSs-I!^h zSZMjv%=&{f=P7~;m7%eKK|X5xcOF9^h*unSbJDBf*|1G>Ne0Z0`XysKDkh^@4D>-m zc}>pno0t8bl9l150SV&&B~-{n(Tz`hC3Suy`lLFGasH{$7fDIJm3^tPo7`6%WQg83 zumlG!O~Pvx?OJPmLEVUAY|2lWYY9U;K0Y`O*)qA^3LeFS_xesD(PMY^ZFM z3J0}rO+1KfHPK{L}7^jDk5sQ)xW_AFP04@UZ7QW{1h?!gvr11 zWXQZNCJGDb+em-Oep8B_gIG3$et6eTzl1U)tU)6=*53HHzk~xOx7si9dBDJlz0Tdq z{!F=H94BxZq8MiZjSOMsvJ>O*R-Xee5*n7p;{cCCB-kQ1BL_J+ zdH~#hQN{DZhgH{hj~saJmS{Q~X9gnAP2~V&`+6t%2zfW*=r5HiBt_GyUEDbHK0NT2 zK3eiOQek|h$}yxRhjW*j%O41iK9NOjX~?{scwVAwd;&@(ZbYttQ4=z1P?@clR0gr9 zWey)p*39I@W2llKz&66H*XMrbWLG=uM4a} zL*;)DSszIcxrviIZ{uf6`gEs1LE;a@rd25^n?{)Z-*D#jkSH;#ID+r8Z$Tgsfd#M9 z=+;=p8fGz>6WNbmzz1{)?m-kR9r{aKhlsukiJciCEuA0aooHMtg;@U zk3HZfoZpF&`j9k-vLjpubjlryZ(fscWDm)@aFDG7-*lI6a^)K<|0#KWmh<{u=XEPT z_TCBN9^*$%ioZ4jc@@Ni6uww~P$!ktrAF^PDso7>em-ct-R^w;@2fQ@#jLpMp{JEC zfL(N$yr>NEjH&SAt!fI1|FJ~6BB?8*kaos=X^ME5++r1_d{pFB^SY^&M~=!yh2tu7 zhR!-|UVnGU{Ot}YV{jxAzIx`uDiCA_^EeAkS+?no%bb5HmCBU8OjWl~L?_5)8Otv- zerd?+K3A-&^cPb=F41zBgQXfw0g*34<{w0yRlev93GsgM^vzlMNRQ7VAB|+R8-je^ zsQF?oT_ab7%;9+p6TNx4HbN zJ9?RJtPPcXAo~~Ds`R{3RGr!@!@E*RY_HpdF2TDQIyo2W4f6kO-TU^mb5fFEgUO%ZNAO!y2(4=I zp8zOW({ugC+vPQ1<;K5qm&aP&4}UBt`ourW;XdB#e&}u7szB=Du8|GeD>Fa>j*QCe z12v!+jyxYSPYt>chrF*(dzLQH0-|X_*!@0Fw0Tc+pZ=xb7i8lu2>L_VYk3tn;h!Lc z6bD(1~OdTLx6>FD^*E;}mxKHznT6 z=IsnM3Ivp9fz##*+gG5;K@PXd4NxQ{zoCL6=$!==9}5%}uXzUm#paY8PuZ-}RUil- zQg$@YrT-EY3D9un>!&=z8E%BC1H9Zxt*MFpX$3j5Dgo*nOlCO=U1k_YZly!%!!@FgNX3qtuRi%G z5I{<-ksBjL5>X+R^w;EpV@cPR5AQ-^z~qG#s&W>69O7aWkWlNp`C46y7V$ZXIKl6~ z=pj02RT;xqm;< zgV)cc^^zSAe^sTM7lh2a3PR?Cg``L-3Yl~I7)>Dq-`Y2;TK9B@Uwo)p7B)*oSzm{Y zpgAT1m7~E2(Jeu%;*_JF`Ke->gM_ zAr(0^A~}EyxPb8D`lLK9kP%Jx=SomUiE=LOXYmwg4G?v8`w>oZ?!wR99nr7WH(AT4 zXb-&AuSV-JEN_Z7wYG7J_FgyGzTy|-+;l_$YkC-I$hk3FY!O|f%cFUbe9~8eLMT%v1nIs3K<)< z)%}ch?j{cO+{ymMXAD7HxsB62u0dfDFm5Ir!fuF2`aK~0cz8C?U16!==oAj!r%MPl(P`nk6JVN_jn`q*5AW&s=)Gk()?3hp^~PMxn>7V;zcQL zj5y?#U49ZW(*iYql2WbN*E)Vc$lDk>r+#P=C6R19f#&Q#I|IT#po#zc#ZQS5{8<)` z6FzO{FADV%@NW#uOC3`SVNBYxC(e*VNgnBwnhHx~$cLWJkdG56tkQT$5vBbOL!Qy($0KWrosR1P@4)wXQ;1fAL_F^ z4)rc6;|w*cc7{~(qfcE=JaLAPFz&nB#(f;;)XTVI!24g0`!nAi_a2G=X51g1qSEN8 zF%NpzN3_hCD|Z+-sE09n?Xt~>oN-M*rs$`dSFOTyCUTZr zc6^^1uEsZS8{>P*u#W6bt$*L)$BqgdaTc+2HaQ4>A-j{>GJHm zu9MY5^{)fpQT=n6@MyyDj3X>sC&%ZINF}ikOoYr4Q0Zux#3Q8iVPo_(4};z8DX}nnOs{E0E|{%NU+k9`1uaf zS)f4#kLBh0^~piJr!|ByF_6j?s_#AS*thPpn&bP95g=r|EN8ZG=s}`_wh&t$>_M6n zlA=DiRx4Q~)NDs^Zvk^K&zj?P5 zdeC{B`pBtj;SSzveV&r~iMmiTY1BGx`MB=Ne^J2J>uVe2XW~PI^_KSkky{)?PHOi5 z+)b!&{vU@acgq8^g;$@~q&)Ehg!@d%B^Qo}Fh8aR3?jK?l=EqS+%UTjkpacQiSMi~ z0t>Jr-zo}_ZvuU9Q5W2DvDyK}%do9@ebnQ0KaA1^aA-HM_vW?k$hE$mB|B~H z7Y2gK`!(+R~on5uD3$>|xwkG}S4 z1@0-@k88AFTtN*}v_1sxj>!*G2T$`qVj64nr%=ljZBz|)5Vx9s4ZhdBb`&m0Jnx9M zJW&U2pyuYaeWGRdfcRs$uSR(KY!a{y6-coD=0 zU+t$|X>V#K7)OMrMPe&58V>EiKo_qWT-(wW1+2ap^O;JFt9(`Kf^!>{T_nD*DTI@} z_vrWKy*VzsMPS#N_zBU{v9CXa6XvnHL|!X*tj7RgE+Vr}?N zGF={if2Fz=Db}P$>cAVON;bdh;M`zIjXe9$wGk8WeHI*|JG3_SM7)to12M__wr~ap z)a$I=3uP-}l@Io5!5VPnYpxlrB`;t%9-7$5>M;9au{mK*{0w2#u+&VxqG_4zyad0d zdLrf-L4tb39G`s=K2y^7tXYLanw?KIK6SqFsmwoQ3KD$?raorp2S3PRN~zgQ0=s~5 zENuNncKQLlOYefXGyFO`U-HSo|2zsJNm7J}^QroJ>|!xkOA}^cJ!!uKOenwJRUtbUFbe2X%$8jk|!$*+{iDK6^oS9!t0>AzIiy1yK8wFBOoL z*u-MGw#vV`#n@82yQ|;&)f`ahC%geL{l+#u-ZZ#mo!YByYxJE|FOVlCMBQ&F=X;E^ ziV-qsKT{2u{_U7dx=|-;{R4x27G0t?nebt?zTSh6tGCnxcD3gwKK6`JBTo@QV7 zJS{-TV^YYB!>A)+&WWs0su(3pqU=pjNEaQf+O2wHI5ef_MQFE=fSefEH1- z0^ar*m5WLOBKd!xXU<-NwEy?_zI-%$&di*-JoDVP#U6H+E*&EF1x=ZY8Uschqe zg>3Y0s_B~HSc{<#4;*p&pV9D$@PAw zYuoA{EZSo(U;RFx-KzFxqk#1`X2YL@2=PDc@D#V zQXM~&>q-kst!2uNqTct*{4T9Y7>c5U9zrHW5u;SH;q;Kwh_&p7uIQ*g3Zc~&R`Nz* zZ^k0Lmrp0uvp=W5XJlU zBC}qp=^Lz7_Ndd*Ybz?K-Fi|DtCI)k^_e_I;z8UAvRm_hBvc?Qt~cfYcZKS>1oo`k zH^N#VN$NKwUPP{P*hu;2*~hh?oSmOY;$tZJBixNQ&+3KAs;jK#LpWCLskyA?_<*%U z&Z+IH#lzzxG|xcZCpr-i3x$;|6~-W*)4lQENi$B z{1A-$b;mw~ONp+Z%x?28;JE(Hp$0q@lt}7UAPb0}4y`zCHAU>qHS~g4wj?E9iJ&eX z%Z9yjCf=+OV&PAn&58F)1P$e2xT?%yy6URXMDvJ-w}m?ikxUihAaZ`tmRnJr=q#%# zb5(>T_s%*-9MayhR_;nAKM-v!Sb-!*P;2mw>6q%>y$UYDE?6tnA+p_$?peI6;P zJt25a%qT9aJ<5;`-CeMafcWkr8Jf5wH_5c91Q7&zoHt?^myn6_NW6(WdGZvwh*LoD zI@|%43aiV-4;#NV;q?1@C+H0c)3wB+E5m;R&vNK z$mKY(^OjVT8U`S!r1qJ>zF_(nceOWmNF^qNlU~NcYnhW^cChA9Me4 zK8pR`l^nUJ&_Md;s)T0T$?N1aqPs#QYU^t9D;GsuIXq%ELNRg~;Qgd@4>GV{MNUH1xx<3bwibxZEQpr2@&@CN!ty>MJ zNFY);roVuP|AbU{|0x0+q_UEKQeKn>_8RnwEOuam4J1NEAD_#1yM+AbAHnjKfI#q@ z4t%;;cvcx*{lCOa@=cuuP{cWDDWh=zk(B510PD<1s)0|g^zJ#*~ zC;d{Picv4srXb1iW>@dJEk9U0z_4Vf|G`z*9TJ56^B`+RvP0B}6f zwM1n-LUfqwW@o9OJL0S;&?lW;PEvZ274t2sl2U56X++c~{{f~b?xX?+SaHsju3Ewl zU{eZoGI_*J?M}8{z;@N!h`k z=Pwg^&IvW)YP#Sc>_5=w4}x5l7nR}dL?Y*mQoty!`j;7^KbkQmQu$DY(fm~rraO*G zD6>vLCp+Av5v*xkpCZF~t;%LIgMJ5Ru(L4nf5>apX}0fcI(Q1l?OK{XK0f00DdQ@O zFutxIr@nnt2fSEB2Xi6BFBXc>3lTJVS!b_dosA)aKv0g!6;`@-7sb3;FgMkP1B&L3 zunzw(WWm3Lzo7gpvJQVIKu+%Ogjcr0^Tswr2j@%Bnac9_W`E#+4PZu%_Fb9WI_s2- zmc8ICa?nzzNWT*2TKH~63E|{It!~Ybx z!0rSiSQ$b|LJ@*Mxri?$A!!s`&Lf;JAUUCiY&ZPB8?I`)d48T%KM5^ZbsAQ^JnBN& zAHkEsZq*ZZV|NOOr1`@9;YMZX`1f(^66-=CosrrjvQ|t3%nQ6eXBng{-)+qwO@-mz zb~PdHH^jo9`NMdx#C$BWI!wP~)f?o7Bo^5x20rF#BI?zIor6K3wbpMop_ zdKIka;*yYDE^byei91&9VrHKZCa!b*7oLnZL!il@vKeTgATT$U7z24;^E$Q!$CV%A zg~(0MvoYCdix>BX)Pvb>#0WJc7LbLU?U2Up#Ov&N8`o~p#|aTM-n--2&bYP0iiKYk z*&Jzlw`UAXL}mEJN`eESgV3N+A-H!noJ#li<@ZfD zO_zbTa|xr-h=|-x!DE0U2f5XZ4vHy4$UfHw~Jfv{?264;@B`U3q33t#WMrwwmwPa5On z4~Q+r-UQf^HZvucD~_pIQw(8*Ei(xsfngod4iW(_3iJ<#H2C$T%Gd_M*A;Ht~YbZ zQ-WUXhZJ7b!Z|Ps2|Hr5lbg;&%1XqQ)b?uh4qdWh-<4EvB3$%e*8CGt)V+yt)_++^ ziEt+9XNaCC?3v>@Fl+xzR3~F$&=A`~e?#AZ{)&*s2{khl$Eyyxlm=dM8ZV%FiIAC? zj?33tcTR*Jg0#9(!*K-W9s7osaXn!aPeWP4*pr+R5lp`D4GtR^^J2`KkRNH7PE9Xb ziMzo-L`R`NpJo)UD~HOL^lPm2>+kQ--xZ=!maDzfsy|u)=q?rABB2^4lIdfSl&Ywv z73f)^<_kl^QMRN{{wE0etm*-sI;v(Ftstws81t}E^!?4O0W*Dha;pMC)J-L>r|E5W zUo6;Jd*#EfuI^iI?eE5`eGVeRs{M&FFV*|(@P1J)1_u#vaI(j14PBuLU4dWbO%;Xx zfsUc%6|nMGp#GI50dxk_BYz>@#^4C@C$;w4Ly4AD*)0E?WC-*4CM-713=eC)^pB=Q z>e*VUNLiad5^Uj!_#}|S2&QuocjDsuk)VC6iYSpzt=9aXqO}K1Bf|0}HB$Q%tZGq$ zD$T$GZ*eESsxuhXLFPvK*YHc0UO~h38!I!-aGr`2L;gMBcV^^6U)OS(xj3E02j2dxzoy= zv&{iY=3-cOfyWUxn>@iYOlu*c+=j$hRg%ExPuC-UEj%NF@7J%nM{AvbP?q6d-?cjt z0G}D{=fDsZ0N>&KM(VV|daUPvBzu674{w_69sHz@GTHMa`wNr3(qz9PU+*l{uWyv> z=_dO@lRZYV+sIB0-Eu%W5S20uOqttFnTVA6n^fTjV_hUTfjXFM%{@v+ZNr{D&-by^+04o8RIm zHOh4RpOXD|lbt$MVNxR5$B~_}w|s&>llqWwMaC@?BbQ;}Q8x&Qn{@6iMN_Z!e+7wT z?SU0_2T!-^|3}Eiz0{VizAL;7+eY`EKC!}DxxtId^4y%0_zCMKW_2rbV<$M#R#oZ0R%NkpZ zEAox_T4MK-Pp1;wXKaOAf%9a|D15;%jtBl@9Jo!}Ln%^5m81OIgxQ>umpb=VOeu3R z`G>lm@o9Fjl+VB?h~GfK_2AS;tFjK|h#2aw>wAbZi0xI@skfXu`h`^sjO<;5^+%34 zv3*z)cW2mfcgjSzd%jQSxE}6Gej;_UdK*I-92D6T5yHf3RFt}NlbHDRy&?HSEjb%$ z;P$R9BJSXL$^e`R5zXPQL z0vEE2dw(qB2jQt2m$+1N;U6g!hHQn7g#y=?sJZEVTYz2>Ks&d{T@+aeHumEGV}TLJ8(?h$613D;L_nM;!#js? zPgxYn;D^vpMdqY5D=YC|pIxS6c{bxCm{WUn^1_6W&ph5^ZnSiiki}QLNo`o)ryr4M z?tve*TeAzY3DEv@(4O#xR}?u|tyW{%dVbnj*2-@tAeLnj7H~sg!|$a_*KSJPJXtCx za-Niq5!4p{)90tY2p$`s-9c5(O_G_RlZ8^tu=e>GdWf_{OH1e;3*k(m9EvdKpI8jC zO)ak6oGy7tusj`oP>>x$$UW^L9yWdPu(9eNq1w26af$e8JNJR%5!aC;8TguSoNQf( z|I_BG1}q2l4^nXWy2Os68bSpeh19aW%eUFyVj&YwfwCrGWg-}CJ8!Wdm_o9_Wn(-h zgEI|vtdhk;NUN6N9q2|`{Y+hkd6lrv7oNvQVX%vI6g8|V1&A-_3xC4as>k=_x) zlHU0@P@BOcw(VmRovOPu&Qu0|^eA=X-JG&}ICb=<1DX3D-W3Ca<*h$`p<@( zq*^7Xt5+{fUGy(4`sF&liZ&v3{D=bWPp7Ik>iN~I@3D#hzFeWabfRh5K#Gk=yxlm- z)>k53H(OasQe3-(5D6vwv0W;S8tR^>LQ4NW7t)zw~G$zpI*H=9~$A<>#Uyhb{%AreGQbyr%v#o%h1!1ERr0DH zrw95yHxOc3n)Y>o7A*2!N>`1dmiqDfC0*&Fl+*S(OH?*^7hGQ~eap)j-ib(I!CJsP zcQSzn26q9?G^ooMm4f;oJOuJ9u|h})0$ntUpW5OUJtIp^j9=uTO)yn%P!fZijKf(Z zk{-obSVZbQ$VJ-l=`RYh>T@s-MG|h= zgKp}#iFz#IA}we=2Vb&?G?!Mh8SGgu8&~8_8IUcoG^YS+prTi8f9)Fkt{O-YX0qTY z8pwWhB_FYgCh$*JUePehRVGExC0)o`c7LS8q8j20D#sHn{xL%e`e9|OyrFwPOrQ_( zX-j;r>lN8tmq#3a4%nc;QzazMmCCTGwpfL#

    dJ)M&Z}@7Z6LMk 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 z zo&VqjlM2If8~*6h6O`3{&sNVS|0uB*U%vq=&?0Yx3LHO;NB*loIC1ao?~OLv?+Va= zDO@yu9Wjz)y z_NtLJpJ(?PWJn`;=a0Vy8YVPFAI-a~&NIS!3M0M==ALn@!N=2UX!D!2`PIQp*C$)+ z9KJe1LBf^^3L5-Y0{`!Ei{YTu`doXxqjmTjVXnE7g5Y97H+}pOZY6&px%j|Et-msu z8=m=gdcTas+*^&6ya#KYN zXc?<%-OTWbN1guE(j!)bJxK(}=7;s~+14*=Y^;|bhZ|pOgoU+!tl#atwZ5}#JdQp- zmwEhupN~FFL3ohJ!+XCp(sicw?-)W%pO2)wzL+>xHkLzy2vdZ?96e*3jPdvg-5Ok; z<{{#Fz8yF{T=5m4u9ruQUd{Huf?iLhyFMm*eb(sp;gPP-w*I0G_ZT0)4&KK2sJM5b z;qgJ^7uq+$Ave6%lK|qL2v5En;rX{bwO;y4p~B2h`%$r^POsR`@pmboV&RwC2(Db5C^km3k$b;{z{gJwme%A3k~> zd=UIuEf#>!`=0E7c(kk4x|JHn>}_vtU8}3hQlE0@d2B5(_u%_SdkiH2zYR#94`#^^ z^f1KMuL3!7kmKJGVnzDZbJRC>@@>j6beo5W{)3Y1`1h*OHHf~a23cKn#@1TKm0tBs z`sEKGAo;19meP8PA(GHKhTz#oh0g;ucE3}b5_kP)x{CX~hQYcc;cOO-&$byE+$*#6 zNilx~(ZJ4NJ=$vFW$ER-O!w3tf09NOrMBgn#9g1`c?5<3Twb=uyjhArWG0%%K89uT zle<&f^QAig(SYoAaL^!*88C5p!u))gyX(wWe>Fe18s{!jN-oxiiG%i ze*o(E7IcwA>tB)qu^*!~R@pWE`_?p!=V73D<}Zxui zSpPHXwH}1-ZC=lbiq*0!kyv~lxVADh7!PkBMLbB34X7tK5M2z`8s?8}65j@H9-3cc zzhGF+1JRHi>xviTx4FGgFwqu_lJRDS5)BU+d_NjcV)2*BX}yv^LU1JNFdj(rR~_EA zN%T}W%SiVr-iki;l{@H)@uAV_E%ik z{x|*J^hW>^|3sJ{ORsqdOd*i)+qm2@*74mQD4!ELvs(ScvGrmKi9dhjC5iVv%i&0d zFmmE*GuCCK))BxiuRX%T-TU87Gt=I zEM!NzX|5yq ztzZWo4Vu~Ioevw}fY$?J|6hOENaD}GIp|CPDZg&tc~Q=0NQOXjs9A zg|_<6%ZEt}TAzhb?n&JHMTI==e^+MlM}#^4v39-1AH9U{(KAe*xS;Kqz$K)lXF;#X z@QDo@%V&p`b7}g$U7wA3GeceT`H?lKs~_Y3jhiETFIoKTDniRYVu-EmEvR&SMtSIo{)f_cek`~nAeP|X&nk$^ zq3Bj7nZ$F-OiRqv%P*sRknWhSzc7}ldoMDH5B=lfb2p5fxS4xwU;mP&Co+%!-TMcr zHr)H@DA7ufe{<=H(XOYkjbJxTE`IVNsDdHB9C~P-fn|7o#KHR*{tqzXY~t7l>7HPZ z&n7V*WKP`r-Qg2Ay@WFc!)(%zf5Y1E#o~9`-k-{JJul1rLmyMCGVeT_RQ+J2_cN^? z^%46o9P42%?20t(qa2=PzN->%m3BC~^ax??qf1|J^}+IlM_POEC7?y~Fv)VHFLlTJ zg&l@`hTR7Kmi!+8hD#)AsUx2WyG+BH=dCh?@eee`pbe?gC(ms70M-|*ngTcq%Y!Z5 z8;O0&0!^S{qmJZxspFLpT0|Y+VX#mKcY4Lt@lqWg;2r>3bMApnUXy%3Wana^)7(?Z zr6bS+n!VyxAAd^5(=)tbPEB|H?db9U4V8<+yFMWk>*;47xFm7>wM?b8#GiX`$GjIj ziUB8H)_NKM0Mta{`2Wjv6eD}re+M!Ifx#WVyQ={&bq z-AvT!52^O=0Za14YafJ+AS&&pe@P1Zq!-tnh3nX-frgja@8WUkK^Il|;b=R1?n|?; ze0cUw0=bUgPpswluxmwN2<+}rY{0PmCxhPr zk$(_`V)?J6L7sQ$`TIR!{J30-uJk&U<5vcO}DDG@EpAR~aNBV)Bj2~5T$}yM$6AM20P!QWcWjW# zXa17$o~M3#@gG+CMYI-%u|xiY&PcR$#@WLIn&f+Vt#=zW4Z~AWOZuOcg|_)p7!@Sa z`djku0g?0_rC9!T;DSFYyo`FRx&$ZO5p0x_$G?3UUgC$7&psG7-*@J(jPy_GDA0Wo zicv!hM}#goT|qA%NO^mdS>**_x-%|&>@_@|;fer*?yHy=>usQI{erz1lrG`%%-4OP zweU;O&oMhQUAGb>d4OKb>hx9^HVvPW%UtWkxst8vt{)|i{VA1Pu{(cgZ9PI;jZbDyp59;+Xu3w&*6sC- zyT35)3KL&w{WZq9_nDTh-EYxua0yrm9<~nr z_-Nui2*Degt^TuT?z+eKmpHzS25qvNdC(x6A4h3?gLR{MS$p@<8q{K%RM(H1?|T^I zDO3HHmXtOV$9gGmy}42TEg6o_*j~{31+uM%VmH%UeweuHH+Z0*XDRq1>&Ml2cc)HA zCIF_&`i7;bXk^Rh6L)=$*9=#||Lgllw|ugG zscv6+%qQLTuPD@d6MwW$h8H8~%f~*UUfn7?dDHsQfv96nYrQ{lOipF#g{}QoUGVpK zk;Me(mi9P-XRH_+`2E%+W{x-MVexr*$^Fz`Mcl_d>i3QPDkrnuD%tNE-@s@UnSc_h zldb2e7VQ_vht0ajy?j4m=QOLu;#PX!YU^Q&$NVOq$up!r+%5&S-9d_nZ}VpuK=W50 zc89@iaQ>VX>5Ut~Z^I7@AU3KJTqCNoc2qy#hSXn@FF(@pKjOjB&$Wg>{SN(X-1CeZ z|5W`jcPrK@?dMF`=>75dC93{Ukk6Vvvv`lLC<`pE%;7EY@OUsyDTviRdfjF^CQn~% zNPOnW_Vn!r7QzgX#aTsBMaR0dUdg+MPoyvJc=n-HjZ0?}-?{&p#2fDC?V`p@pJ<+% zT^#+pi=HT+`a@DKZV>$Rorj-ET=p|p{(_?8-f)uCOXG5v`f``WDVHf_@f%^|GFAHi z%dOJSyqwAkPBysifRQw=UV47<)WWunjV*^0+d}Qr&$Twc?C%+4ux&^4m-PBS`7D6& z`0%eeeza{*RG&++;u-lz61(q3%ywdOBA^Y0>jPv@0?@tJo-_?q~LRj}h# z;=4;v%Yq!YH=MZlSLl#45r2!1=q;JYpISV5$w=2@sbgO{^3_&~g>`u2>)ms~^756w z_2tw_E`D_fYMIdFp$GVTmUd~hrEgVt0F&`V_|lHAy7OCa17*`oC-zd0t6;@ZA4(k~ zjVnV|HGggK>lZb*#N)RUJ!gKt{VsgxT2{5u5rPxvbIBCPKTdyi_1|L~dJt~X_)w}J z!_~8mpVK|eA0nM_lEl3)!Km^sJ_5gL+u6o;lxoAL#Ia|@zux*e{%#8s$A2KUcK3%g z!qbmii-;Oe@lD!ybMcA7M>rF6=3-iUHxZ_MC*wrp)vNl?zAg1}8oiv)U9#?pdtZSE zgV6j(7Eiqe8w=1+cRh6Mu_IsSN`S<@zm{IQ{l1YCl~pLI{SUuwKZcTfoAAVsQse2k zMyBg;b{u>5$XESXu$yo!^w`K!@&42A>H7P#i?<&`r~D$Oh>wkK`C4M}VZ-|tS=PvrP)%kFc1dKN})Kb;?ukIcjry|J25<>pN#t%a}A9}&AQ*QjQgG5~ zuQcb2HGTn1Fk9uR9OUPU`GbA+TtkJ*xmvNWUaje6wp59qUB+y)5*Nx>EA_aPGKxn^ zjo?7B(U+^&i#086J$fx2sLU4uxpGUD*=kUa9+cwnz|#DqQd#5btkq~%7+hbzS}WS? zp`s3guz} zl#Z}_&FY|saYZ=GwCBTOC0}h;cq|sy#5uKMqgktjTHdfas~T>R3oeNknR;F;7X~-a ziO?d9AUzDy;}c_04)8A(!X7Q5LAy81SLYd2+zqdKzdB^ut0LwVlwEJmK;%KaQ7x^= zsTCK>OnyZwoFK|*(qKW8%FgE&1_oG!gd2Ycral0DW!^Z_JDhzu@p(=6S{ki4~eG zBXDr6kcEW+!pYGo7P@@MkSoSKp-23}QWlD&j7_AHL+RwskyH>Cs>Qm)ylNR_Iy?t# z!$vJvsh12@YQ=I+55T2XofqJCm5zX*3)NDk0R}Z73tr(i;fmFO6V;29pFCP`6z9WI zJ*?+ui(zviY*fQ-gPYzEgk&t#U$6)zUZ6HPo#dFS94JOqx2INx;OMTxf2GDi(2>AG z){e6H9ZBt(l0H`~FVHZX3iB-vlm|)!vjd0b76yXd!niQlxPHs}jX|MQH=^zs0+g0( zmK#~mNqS&KfGSlu;HcV&3T^~|2fBi=Z+jT@tPaAk$FpH0z#Nt4iUDAS#EXTJxR*85 z<9WHJ*a!wHIda1txu8*lQ^Jm6`e6ftD+1Xd?8%qmWVI&C$nQd}IA5x>#67&^Y6sjy zoEkvM*-G&MY!cjQ+CoPiOa*KL2Z9}?;MPhbTbs`|E6qB)GW1Y7)E|w*y=LpB`Gs<6 z_9(CIXIRBT`^`XY9ma*LwRSe#ul)l5Zoe?W_RD;UQM6wRr9x3a!*%G%)eV7+z>i7*GU!2x4y`g7p&HqR9n ztY5#rSHv_Qq~;eIN5kR~)~ap@8SMbbL$#c?qA*AuL3R=OX}N=e15FrKJJG#|2a87! z!&d{iR_&;fZ7?<-j3#f{nOeP-$%kcds7g+_9GwB20~jTpm5 z3FM{s*&Orfo?RUzBk@8Eqf#tE616ZHGJ>7dyE#{@NPZL_0y}3}nMR#AxHmcO5n%>A zwbUjYKo1*Or2K~N!Uo9%^FeLK?eV3$#JYYYVSfN+Wk9G>K!`%hh4C0xG!0W{}AS+zmbf@Yx7>MtBB(>`LU6wb^td&gy+W zSE}^Y^R?1KBbYDFBPX%ab3h2R3DzR^Xz!EQ4bqnU?%${$ELPSAQ#WRlllnWH8p@0& zNA#H5o0*)l#9iYP$q`E%NlhthYOHe;XPfoAiZuWyU(n>dhBrP*!AjYRYw#p_1Bg37Oqvqp7i| zL}qN)xX&BkGet@NvS(s^e3yTo9%F<<;}a?Wep7N}I(i-*A5OVRj_*L;gAHhU9iPQ|Z+B#4Wzj%+wwmc(0`fw(>du)7iDl>FW)&!FoADv94hE?#U)Wpv5$;{L( zdPz-8j8E)LrIR;h#wV08mK?RI>DP)Ur>Bs+t!ruucq%3&nD*mIPL7XFkKH&nezRpk za>|7WGeeWXx}J5xx?cXz^8cE3!Kt3aBQjK$Jr2QXwwj$S=cJGn!kOmmEIS8c;L)Sm zI{SBa=4hi>@9CwSEDdDLmWxN=y}3$-g0nezU?EtKu1WSjIjX~3cV-;m6}Mj>S-9yH)UAnka!jfq{+3@z)!z*i4$0GdHhPteOo?l(Xl zBq1SLhA81>nszcmup?MMTSFKPc2+?)q~b;i{W3TL6xKIq`=}I5?;3WJF;Hidt5I3| zHrp`DgNYR~!E|I|!I)t+*puS12i>nLU?FOlLR^&O9RjSJ)}baG-KFH}b1r3@H#}U8oB|yo{B)OR z4a$;~O~r*8HWZ47keLeACTpIDRTNF(ubX5D`I`+QvXr3TGED>(WUduy>I~dLSQ53d zlrzO}W56mnfyOO*`(5}{%*p2D3plG`Fkn6O$uNYlTdvOJ%6*PTOhrYyUnu1d9?c&1 z4^%LPxUXEA$9gpY2oL7w%pfF*i@L=HiZ*$SvzC?8glNRgyw7?M1`5?avvHIfrZ3TJ zp?0)}iEIE}i#6_p)aQ#Z*&9&p@`e04x%?JiyP?*A+GsQltVH2xJNRFlr ztAnG-6cMF3PNzIkAT(P#(kJ;ddI!MK<9w;m*Fczz-lZfjOR%*XC?MPRd7+vK z>aAKS9}NbigXS1RpVUyFW1{>y2`tfEmHD`VfI_g{zCwxlNa*iVB?FN)?u>OnuwHG} zXx*<^{O+e}La)qz(p3A(wOrpUA}|bxaeKEM$-K6TcOzDDs=sGeVpi4%1Y)?(511487hWHBQD(ttG3$#N{AI<}moXAK!^NmfUl$?tZoMUgVVc89lp9$ZFm_ z+5Rj`03!-IUtG40P07mceDT?`lxr;zXK)L+XJ<@t&uiR|wsma{wqw~^#BZ(uP8)Co zWj!jhGQk&{?c0PwV!?h~lJkGKRq1$MmZ^QxJ4$Q>F4Ii>u44PKGs|Wso){Qov{&cG zait`5_nFWgKe>$L{7mUUv)aV!YdAW9XzDG&@S$*}s1Y8;c{4e+C!BO9?5$zn3;mPj zq^$#m*db&MnuJAS&N1;Y&pOnxq}e~S>r9Kv&X;ewLy;v3V}GR)Rpi%llh85zN zibvcr=5uo5en%Pe3+EP{)l*xz4K@D5s6yn^t>FyzJ~R56aWBsIeZvaMn50(b`P|FH z;;pjBVFX0PZ^UcanVy z0>qGNe(g0u|AtKg6+Dd{>MnRU$~F=AcJpm^dN5r%)6=HR#VWnb9P3yhqQ#wQg;x|z)`gp8W7@mQ!yNehASPWYj z@WTm4Vk&LWo63eq%0LLj`L;NcQh_g5n5iMjC$Led-GLg%SxN>1&hc|yj&;#Oo_ffuF z&!W8}FJYY4v;J&E!a)ZL)}sOk>ya&jiR$4xJ`TXD*61Qc@?j7lVi5L*!4M9j`O1nS zfSg21Va={0_Mjf{0`_hj1bywn{escf2J<_DsrpbqHiq!fCjC8ZkDKjpPn%jQsCi+b zDW%*|%H`&{V{DFEXPTw5tVt-7KxO%A;do;l-DYz)R9jic{Qa7y9PdPpEEL^RXzGXx zVUWRI0dis{ujEnPD=t+q$MR4#-%PX|9^HZ=hjjuO#TvP01NMV?1I%E%V=@j=rPJW1 zh1P?xB3bbAa7aNKnu;x6FkEa9H~@yQ{E##_C9q;CneO6!VzG zFn}EmN2F&=n?8Pd2!*lPG?7u#Fh4q@@Puh6$x0z*`biiZMqe^J1v{wm6@*;+su%Ot zyk*n1Ilf|L$M?M36!P|fG@2pl@eC$lN2!+zGJ9xQ>twaZqghLNkv4ew`S<;xyRUy^ zA+*1%dD*gl(`?w?t;hb2_UwLFzfc1bCdiwTV>{-(p`>=1t@2RD3-;~g5G;-8dW0%S z&nc|OwnB5`rqmkekg?^cUq37Ai%j5|17{XuG`3FR%2ZGG4}|T1matG`WA&+)u(P9x z5;k?bTN|6sDKXtqgep5%_Of%+ie7fEY;@=5jwaMg2N{aKFAwX7a|>C=4w*sV?N7F~ zi@>kOUx+hwaBUthH*K+pI_^BUwp=A`<>AOQaRLY~#s`8_cfNb$CS17wcZdJI^++Wg9K@8? zkRSZk+WLG@*|f0l*2?~H`(T(qx+x$ahysO5P+8d5zhBRl{-8dyQ0mWG6>7lVtc^Go zWUXayC1<|r3aQ=v5!a+ojLU315^UTHpC1V1aSV2kO^2ghCQzQ{spR{O$@ zWg01GXJ;E4FCKHvpr;aE5%%1;DeS|E-0RXRhNqjtZK1|5%HR>3`U2BO%G%?898h?7 zP~u_tNM`5I-o4qW>9Hh1E|WoZ<~IoixUFapX0{9tluI-DBS+R3=due@Z?JL>3>1&Z zeWK_Od&Q4{=Oapza9nO^)Exw0CT&GSZbm zyxZtCo6S}5XqdXYBH|`rT|g;b7H6ptj2zqi^3?2P6n(io-3PQSPn3`PKxIV>V&}kf zdCAVVU=MDvy>Lw=8hq-FS~)9CAgjgj<0w_@1K4e_P6y6jlf`~r%EM1< z1tmmIo^vwIH0?b=8)Wllo0Q!aZeejfL9JkxAJ+_T*r*hS$R^I#bu=JQ;u>GWs{7~p zM*o&An_pw&J&e?wU9iA77Xj;6Fh(?{QO&pUE+_e#(450r7ns)0$>(Ha5xNQv5@4`P zyn1Si|ASYLDO{miIXW-RTP9kIH|z~0j4+#gS>=25rbrKsgm3{c8=;aW+a)BJFj}G< zaxI^QAhVU^Q}RKO?X2I-9m=^t3)g_f z$VixTx`Q=3H8P3djqf5tDpyp=hY@wa+7&smB|apw4dn!5RCswXS1RD{453pLj(D_) zNf;jtR}mCZ^IcXH#S=siVX(a?C>_B76|m}IU;~$|D0?^_AHQ}4a-l8OgEvCf^OwWM zP!J|VdHTy`{DgXNiTEa&ED3b~;7^5Bilii;}K5?n5|)&^?pV|IQ` z6Qg_4%u1TY^U70ZJ|}$! zOWwf1mAq$NL|spi-90kCGdYqCdQfBo{_hPG86_nXv^Ppo1XM%??Z9%E(n(r~cNjC~ zBM#x;tR0*a9a+(vWx+{0^WxXsSa8K)kedv0Ik=W0Uljxx+ayD9GIwB? z9_jkI4rXh?0m88xL3uLRwrwydmtwS9yEY^# zn9l@#gTeera3z0B!933T;^BS!gEfOe<*=TE>O}CS!Jt|V-t?wmVI;U}Fj$xm`nF#g zEGz_9UBy#yLr{YW4+gc#VEcA{@kc041_F=jG5dK=?w}iIPDwN-b-nJ|{2jp(L{DmM zE{FS6wXdhTe*3TU51TjfklkfdFx;AP(@_4%kc*lkYKX_F4ACL{4vmkDC?JT((eW{2 zng|)vGx0OY-AFS$?@8`SP3XZQO889<4-@TTc~hy8)SfgIU8UsY^hCFn039%-9R~^~Av47L%Yp%WSHP>&+&E#S8$(=*Q<^+B1^kDbsRFEbLD|sV-_VE8G z{}1thivN>(CIXC*lpw|LYxy0;?~)u1_JA%Kc5e3UuzMkx#2iA#D0U8hrkcgNes3-o zD(-1&4sl9JyJ{u;dO0wNypL0}85)3IwmsRfu||PI0DY52K1&43Y>Q<>0k) zbiTHU-!j=eK*$?bmIYWD5eC6HZbSW!VT!SYVf1EuphdODBx-6#ji?PZq57(+T4?D6 zE_goSO^%Tz(itFekYKpU!@oAvkJgDiuWvYV{dF4(<-WYcdKm%N&jr=lS%U2)@NNo@ z6swi&!dwY-svky~aSnKM7@1sQ=7JK;{n!IL1Flez|W66=e?ah4snqW|W`?g1^0j2t`8A)w8rzDhbWy{5m z(jBc&?Ye$>oyP3-)Zp*=%MVR%qCCBC>d0R{x=jI+cP6`c^ZIN0`nOzny#|%5=S!vY z*RU+&=?M!PPVLO>R&llOmZEdmE4uLog7x*PUnE(xFeI=Dpo=Z-hWbHm0ac}8h9PPI zF3Q=CXysg*UU>rJd_(5VEmG%7k`dt+!mGk-!tGWFsWon0Iw_^{b6VAnNAerPE3SZ_ z`nUez{!>ps|Bu0L;xBK4-Att;WGZVoGr!rl-G_hB^v1x>SM+Unr&r<;8v6NqlCS)u zY;RY`I?e{-?-Xfywf`L%AF}RTpk0V_tk*UW2U9Crb=`XEYfE{l{ycrTMI z$LKDxFn&R0L7lN#U&+REn{?9AJz&l2Q_+SXk=+VF;wB;=4Jt4dYG$!RqnWb>@r3`9 z&>=yeLP}5_tpXNm+7BH-&3B;vr^kMa0tzw7fo>0s#n0xoGTj=F3e6&Y;{E2Z7;*n$kIEuO`^9jxL!AQ@D-r|s zeqN9`NGPH_YZb$u8O|1NpE=m;fz+8bd$`am40q_~`qLcRb8lc2i@`x8m{dd%VIvD; zu@DMEJbcz89m0 zUr4=bi5wOO6|+4+po8IN9Ato2Vfd?w(tt?jvB(qOg|#%~j7WF?#^!3sJ|y(wJQ-6} zXeI0+oTR)y6yEjH%zW;MJ%=?M9w-=bGjT@LgSB6#gKd7DO){uf2G{n3tie1Q+$BPU85|C*Uymm*$?!!0O?t&jiGIDrAXpyGlR7V1!+4Es3*t3+ zh|0!nR_?6v4sbYc4btw)x<_Ue`%7x~Eq&edoFD0wr78=J@&?rGg9uUOzU^A}Iutcnx(Dvj)Ce zl%sh?klYVrU7Q&2DU`Dd1O*7WdL4#enO~4`^Gb|u?zoBIhFkk}gi6HpSm%O}*hq(XCJ3Iz%(7eL3S_X>7(PL7 z4r~<&%6ctn1fJ+fXBHDNho9f}I) zys}g0&8w7!b7Y67vJ|iv0XSGs=mZKrjfP zft!=uD!?xcZ2~)%(w{gR$smpYV`2)%`T8Mfcy#=xovC1Qax%4<&3})Qc)ljvAMBk>-o&}M zWUcGCIY?0pFLPd2&< zz!jNBdot@JmTr7QzUi@Q_NLdTI9awwmOJ{-TK#t65!g01r^eh(oUCeBawCme*~4+S z>77{!&U*m49fJ~5qXOI%9QBqzGRW2%{W~x8?4xYkm6|Dv?Kc=)*@-u zfrJE+Y*}iad*Gl4I|VkXh+H;6sO06i#()FDhg4Eeup+5P(C8J~s(H0Sachz*2+22h zGhGf%-LfYYTq}FghD>TG?7!x^Yd3|Z{_88@uHm5}v4-HrB69y^X&z}8euzD!u%mFW z**vhma4@*)nrp+&{hK!RU3cv@o88;yP1m|N+6?+3D*SJ+>FeLrw`pUrDtN=bqqpqm zZ)I$M(7n*z=sv*z^ZY*>T-BWqyOGw*f&R{f-5j8m&(SQGw*;327jyf~d9q#~cHd%b zAXdG%;pCs1o)`n;(VUG__EbvcUKDJ{TGqy7DB-@w}Dz1X+T--s!Xs^N(h9=52!vLd5epb{182E>az^ zMxKId724;Hx`pDuCZU-LJ$0m**B&ZX@0!>di)w8_f@Z-9R?QCyHZbJQ{KNv0JBA$W z@%YNtfaXv5H8*M$;z8^bFCs(!TcjuM96%<)=4$T@mXSKo7^VQMzmg?g&^0h{B4fT* zt=EZlwi?>&VraQEUK?Sq1DF}&bUI&sJ4ml~@-LV|R^{pwqQTglZ83g|c)5q?K+%Sy+h7Run&rwCfk9&pGDH^~K>fqzd@z`RlI-Y>YiDI=npZv8 zS<{K_aG`|AL(HPA&eZq18LN(h8sdhe&xr_Z1==+b=j8bSv<5=+yxIumG+`}O1h5?9 zbfkQ@!LH~E8DVJWQL*6&ClQ9g4+Y4nJ`QM3#uYUHc!<`}LhgbLOYRPaGEAMCDg;Al zT&P0C#K{aVdu4mrBiOdf;U;UFL-P4KqD4`?3W3YmjJC!(nf5DFhkJ|wobxufr&euL zQB1>v0xNYW4@~eT4~=?gG83}PSiBsk4ddBI!|=UDn1+*+u>;*GLHLT#Ra1@x?36Eq zCmFjwedH7fcTNql+BmUZt~QJ)W(loy>+k36aVL7cipDVVGgn7~}z8=l~Kf?K?NXlWt?SUtf#(Gt0$qxdCCa~OoLk&k$GE{G`jfj{~3gE~F1%+rn5g&q?X=Mum zn?69U8;$wiVt%0GGj-NP2Vfol_N)}(c*ZsA=^&=9cz(8qF@`Nmjw7FgNyv~5*u*wf zXy+{7Gur8KL$f%R%SRpMM3L02i?MoQ6{K$;6$F?>Fy_`=%UVF|>3natuMr{=7(#XS zIwLg2nl2Pk%|StLu&}U`4pi)@BHqSevxFokMGDYgun zMb!0L+JVN+l3viB4Cq(@;hanuP_u0Vhqb9W3%;m^SR4C8R+;MjPkPH|KDA~D5?#C6P&@+>%CehVb~NNZiFCpI5QD6 zZqxkfsd1YQyT$$<4tbW2=q{eRZLPwI#^wU<4BCtQB-T=v`mRo9WDj8r z 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%0D?zFeaJ}!1>1!E>Ny?gJj?r$x~Y|)^{oks7> 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࢔Pynx~~hb=X2+( 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̬nl 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н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

  • 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´X?y6S#r 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