Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
23f1a56
refactoring: reduce dependencies of unit tests, separate unit- and in…
madmike200590 Feb 2, 2022
298118d
refactoring: fix compiler warnings from redundant casts
madmike200590 Feb 2, 2022
515949e
Merge branch 'master' into refactor-tests
madmike200590 Feb 2, 2022
758d731
decouple core module from config structures, create Alpha instances u…
madmike200590 Feb 7, 2022
1b04d74
alpha-solver: improve test folder structure
madmike200590 Feb 8, 2022
fdc4902
add action heads and draft evaluation
madmike200590 Feb 10, 2022
5097587
account for action heads in rewritings and rule translations
madmike200590 Feb 10, 2022
b975a9c
refactoring: factory methods for rules
madmike200590 Feb 11, 2022
b2f9c96
actions: file output draft
madmike200590 Feb 17, 2022
09e1b7c
actions: file input draft
madmike200590 Feb 17, 2022
21664ed
additional actions for input stream handling
madmike200590 Feb 24, 2022
4f9de69
actions: draft implementation
madmike200590 Mar 8, 2022
0f2fe31
remove useage of non-java-8-api
madmike200590 Mar 8, 2022
7f8ba4f
unit tests for new standard library externals
madmike200590 Mar 10, 2022
25008a4
adapt AlphaFactory to work with externally supplied action bindings
madmike200590 Mar 10, 2022
da7160d
WIP: refine action implementation
madmike200590 Jul 7, 2022
625a3d0
add ActionResultTerm interface and implementations
madmike200590 Aug 25, 2022
990da89
use ActionResultTerm interface in Action implementations
madmike200590 Aug 26, 2022
b8821da
add debug option to add action witnesses to answer set
madmike200590 Aug 29, 2022
dc0198d
specification for action implementation provider
madmike200590 Aug 29, 2022
e80c424
mock action provider for testing
madmike200590 Aug 29, 2022
399ec00
mock implementation provider and smoke test for actions
madmike200590 Sep 1, 2022
20c2b73
remove option to switch off stratified evaluation
madmike200590 Sep 3, 2022
6b2bba2
ensure statelessness of program transformations, reflect this in naming
madmike200590 Sep 3, 2022
7802ffb
incorporate action support into AlphaFactory, remove option to disabl…
madmike200590 Sep 5, 2022
491390f
fix mock implementation for actions
madmike200590 Sep 5, 2022
efd96e8
fix evolog hello world test
madmike200590 Sep 6, 2022
8312dcf
fix name generation for stream handles
madmike200590 Oct 3, 2022
db5544f
unit tests for actions
madmike200590 Oct 12, 2022
685617c
merge master into evolog-new
madmike200590 Oct 12, 2022
20a571e
merge evolog-new into evolog-actions-new
madmike200590 Oct 12, 2022
782c338
fix ParserTest - use updated type name InputProgram instead of ASPCor…
madmike200590 Dec 1, 2023
c7ec493
fix FunctionTermImpl#equals s.t. also subtypes can be equal
madmike200590 Dec 10, 2023
8d86445
Fix ActionsTest: check answer set content for answer set of write fil…
madmike200590 Jan 9, 2024
0bb76b1
Fix checkstyle violations
madmike200590 Jan 9, 2024
01c7038
add simple evolog examples
madmike200590 Jan 11, 2024
fac7e67
merge branch origin/master into evolog-actions-new
madmike200590 May 26, 2024
8191e89
WIP: merge action implementation back into state from master
madmike200590 May 26, 2024
133553f
WIP: fix tests after merging action implementation into latest master…
madmike200590 Jul 7, 2024
173f664
Fix tests after merging master
madmike200590 Jul 22, 2024
aad5520
Fix tests after merging changes from master
madmike200590 Jul 23, 2024
fd9f6a7
Evolog Modules: Parsing of module definitions
madmike200590 Jul 24, 2024
2b4f19d
Improvement: End2End-Tests using ASP unit tests
madmike200590 Jul 24, 2024
49233d9
Evolog Modules: Parsing of module literals
madmike200590 Jul 24, 2024
90d3faf
Evolog Modules: Unit test for ModuleAtomImpl
madmike200590 Jul 24, 2024
761331c
Evolog Modules: Permit 0..n input predicates in module definitions.
madmike200590 Jul 24, 2024
60b819f
Evolog Modules: Revert to single-predicate module input
madmike200590 Jul 24, 2024
f338eeb
Evolog Modules: Permit external atom interpretations to return Set<Li…
madmike200590 Jul 25, 2024
d410ad1
Evolog Modules: Draft implementation of ModuleLinker, which construct…
madmike200590 Jul 25, 2024
13010e0
Evolog Modules: Finish ModuleLinker implementation.
madmike200590 Jul 26, 2024
8bf77b3
Evolog Modules: Fix bugs where module definitions do not get passed o…
madmike200590 Jul 29, 2024
d1f349e
Evolog Modules: Add parsing for list collection aggregate
madmike200590 Aug 1, 2024
3540762
Evolog Modules: aggregate terms into list using aggregate literal
madmike200590 Aug 6, 2024
1dcdbf0
Evolog Modules: module-based implementation of bin-packing problem in…
madmike200590 Aug 7, 2024
119e2b1
Bugfix: add toString for EnumerationAtom
madmike200590 Aug 9, 2024
712f263
Enhancement: new external to get all matches plus their bounds of a r…
madmike200590 Aug 21, 2024
be6854e
bugfix: permit enum directives in modules
madmike200590 Sep 15, 2024
ec18c5e
enhancement: add newline when writing strings to output stream
madmike200590 Sep 28, 2024
6ed327d
enhancement: use more specific type for action result term
madmike200590 Oct 30, 2024
171d2c8
enhancement: more specific type for action result in action witness d…
madmike200590 Oct 30, 2024
57f6f5d
Evolog Actions: Slight enhancements
madmike200590 Feb 23, 2025
a4005f2
update version for gradle wrapper validation action
madmike200590 Nov 2, 2025
1ec659d
#364 add Evolog examples, improve javadoc on action support implement…
madmike200590 Nov 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
*.gpg filter=lfs diff=lfs merge=lfs binary
*.bin filter=lfs diff=lfs merge=lfs binary

alpha-core/benchmarks/** linguist-vendored
alpha-solver/benchmarks/** linguist-vendored
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
submodules: recursive
fetch-depth: 0
# See https://github.com/marketplace/actions/gradle-wrapper-validation
- uses: gradle/wrapper-validation-action@v1
- uses: gradle/actions/wrapper-validation@v5
# See https://github.com/marketplace/actions/setup-java-jdk
- uses: actions/setup-java@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,4 @@ gradle-app.setting
/.dbeaver
/Scripts
/.vscode/
workspace.code-workspace
*.code-workspace
81 changes: 50 additions & 31 deletions alpha-api/src/main/java/at/ac/tuwien/kr/alpha/api/Alpha.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package at.ac.tuwien.kr.alpha.api;

import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
Expand All @@ -9,7 +10,7 @@

import at.ac.tuwien.kr.alpha.api.common.fixedinterpretations.PredicateInterpretation;
import at.ac.tuwien.kr.alpha.api.config.InputConfig;
import at.ac.tuwien.kr.alpha.api.programs.ASPCore2Program;
import at.ac.tuwien.kr.alpha.api.programs.InputProgram;
import at.ac.tuwien.kr.alpha.api.programs.NormalProgram;
import at.ac.tuwien.kr.alpha.api.programs.Predicate;
import at.ac.tuwien.kr.alpha.api.programs.atoms.BasicAtom;
Expand All @@ -27,48 +28,58 @@ public interface Alpha {
*
* @param cfg and {@link InputConfig} specifying program sources (strings, files) as well as config metadata (e.g. literate program,
* external atoms, etc)
* @return an {@link ASPCore2Program} representing the parsed ASP code from all sources referenced in the given {@link InputConfig}
* @return an {@link InputProgram} representing the parsed ASP code from all sources referenced in the given {@link InputConfig}
* @throws IOException in case one or more program sources (e.g. files) cannot be read, or parsing fails
*/
ASPCore2Program readProgram(InputConfig cfg) throws IOException;
InputProgram readProgram(InputConfig cfg) throws IOException;

/**
* Reads and parses an {@link ASPCore2Program} from a list of {@link String}s representing paths.
* Reads and parses an {@link InputProgram} from a list of {@link String}s representing paths.
*
* @param literate flag indicating whether ASP code should be treated as "literate".
* @param externals Custom {@link PredicateInterpretation}s for user-defined external atoms
* @param paths a list of {@link String}s representing paths containing all sources from which ASP code should be read
* @return an {@link ASPCore2Program} representing the parsed ASP code from all given path strings
* @return an {@link InputProgram} representing the parsed ASP code from all given path strings
* @throws IOException in case one or more program sources cannot be read, or parsing fails
*/
ASPCore2Program readProgramFiles(boolean literate, Map<String, PredicateInterpretation> externals, List<String> paths) throws IOException;
InputProgram readProgramFiles(boolean literate, Map<String, PredicateInterpretation> externals, List<String> paths) throws IOException;

/**
* see {@link Alpha#readProgramFiles(boolean, Map, List)}
*/
ASPCore2Program readProgramFiles(boolean literate, Map<String, PredicateInterpretation> externals, Path... paths) throws IOException;
InputProgram readProgramFiles(boolean literate, Map<String, PredicateInterpretation> externals, Path... paths) throws IOException;

/**
* Parses a given String into an {@link ASPCore2Program}, using a map of custom {@link PredicateInterpretation}s to resolve external atoms
* Parses a given String into an {@link InputProgram}, using a map of custom {@link PredicateInterpretation}s to resolve external atoms
* in ASP code.
*
* @param aspString a string representing a valid ASP-Core2 program
* @param externals a map of custom {@link PredicateInterpretation}s against which external atoms in the given code are resolved
* @return an {@link ASPCore2Program} representing the parsed ASP code
* @return an {@link InputProgram} representing the parsed ASP code
*/
ASPCore2Program readProgramString(String aspString, Map<String, PredicateInterpretation> externals);
InputProgram readProgramString(String aspString, Map<String, PredicateInterpretation> externals);

/**
* Convenience method to parse ASP strings not containing any user-defined external atoms, see {@link Alpha#readProgramString(String, Map)}.
*/
ASPCore2Program readProgramString(String aspString);
InputProgram readProgramString(String aspString);

/**
* Prepares a {@link DebugSolvingContext} for the given {@link ASPCore2Program} to debug program preprocessing.
* Parses an ASP program from an input stream.
*/
InputProgram readProgramStream(InputStream is) throws IOException;

/**
* Parses an ASP program from an input stream.
*/
InputProgram readProgramStream(InputStream is, Map<String, PredicateInterpretation> externals) throws IOException;

/**
* Prepares a {@link DebugSolvingContext} for the given {@link InputProgram} to debug program preprocessing.
*
* @return a {@link DebugSolvingContext} holding debug information for the given program
*/
DebugSolvingContext prepareDebugSolve(final ASPCore2Program program);
DebugSolvingContext prepareDebugSolve(final InputProgram program);

/**
* Prepares a {@link DebugSolvingContext} for the given {@link NormalProgram} to debug program preprocessing.
Expand All @@ -78,12 +89,12 @@ public interface Alpha {
DebugSolvingContext prepareDebugSolve(final NormalProgram program);

/**
* Prepares a {@link DebugSolvingContext} for the given {@link ASPCore2Program} to debug program preprocessing.
* Prepares a {@link DebugSolvingContext} for the given {@link InputProgram} to debug program preprocessing.
*
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @return a {@link DebugSolvingContext} holding debug information for the given program
*/
DebugSolvingContext prepareDebugSolve(final ASPCore2Program program, java.util.function.Predicate<Predicate> filter);
DebugSolvingContext prepareDebugSolve(final InputProgram program, java.util.function.Predicate<Predicate> filter);

/**
* Prepares a {@link DebugSolvingContext} for the given {@link NormalProgram} to debug program preprocessing.
Expand All @@ -94,57 +105,65 @@ public interface Alpha {
DebugSolvingContext prepareDebugSolve(final NormalProgram program, java.util.function.Predicate<Predicate> filter);

/**
* Solves the given {@link ASPCore2Program}.
* Solves the given {@link InputProgram}.
*
* @param program an input program
* @return a {@link Stream} of {@link AnswerSet}s of the given program
*/
Stream<AnswerSet> solve(ASPCore2Program program);
Stream<AnswerSet> solve(InputProgram program);

/**
* Solves the given {@link ASPCore2Program}.
* Solves the given {@link InputProgram}.
*
* @param program an input program
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @return a {@link Stream} of {@link AnswerSet}s of the given program
*/
Stream<AnswerSet> solve(ASPCore2Program program, java.util.function.Predicate<Predicate> filter);
Stream<AnswerSet> solve(InputProgram program, java.util.function.Predicate<Predicate> filter);

/**
* Solves the given {@link NormalProgram}.
*
* @param program an input program
* @return a {@link Stream} of {@link AnswerSet}s of the given program
*/
Stream<AnswerSet> solve(NormalProgram program);

/**
* Solves the given {@link NormalProgram}.
*
* @param program an input program
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @return a {@link Stream} of {@link AnswerSet}s of the given program
*/
Stream<AnswerSet> solve(NormalProgram program, java.util.function.Predicate<Predicate> filter);

/**
* Normalizes a program, i.e. rewrites all syntax constructs not natively supported by Alphas back-end into semantically equivalent ASP code.
* Normalizes a program, i.e. rewrites all syntax constructs not natively supported by Alphas back-end into semantically equivalent ASP
* code.
* See {@link NormalProgram},
* @param program An {@link ASPCore2Program} to normalize
*
* @param program An {@link InputProgram} to normalize
* @return a {@link NormalProgram} that is a semantic equivalent to the given input program
*/
NormalProgram normalizeProgram(ASPCore2Program program);
NormalProgram normalizeProgram(InputProgram program);

/**
* Constructs a @{link Solver} pre-loaded with the given {@link ASPCore2Program} from which {@link AnswerSet}s can be obtained via {@link Solver#stream()}.
* Constructs a @{link Solver} pre-loaded with the given {@link InputProgram} from which {@link AnswerSet}s can be obtained via
* {@link Solver#stream()}.
*
* @param program the program to solve
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @return a {@link Solver} pre-loaded withthe given program
*/
Solver prepareSolverFor(ASPCore2Program program, java.util.function.Predicate<Predicate> filter);
Solver prepareSolverFor(InputProgram program, java.util.function.Predicate<Predicate> filter);

/**
* Constructs a @{link Solver} pre-loaded with the given {@link NormalProgram} from which {@link AnswerSet}s can be obtained via {@link Solver#stream()}.
* Constructs a @{link Solver} pre-loaded with the given {@link NormalProgram} from which {@link AnswerSet}s can be obtained via
* {@link Solver#stream()}.
*
* @param program the program to solve
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @param filter a {@link java.util.function.Predicate} against which {@link Predicate}s of answer sets are tested.
* @return a {@link Solver} pre-loaded withthe given program
*/
Solver prepareSolverFor(NormalProgram program, java.util.function.Predicate<Predicate> filter);
Expand All @@ -155,11 +174,11 @@ public interface Alpha {
* @param program an ASP program to reify
* @return a set of {@link BasicAtom}s encoding the given program
*/
Set<BasicAtom> reify(ASPCore2Program program);
Set<BasicAtom> reify(InputProgram program);

/**
* Runs all test cases of the given program.
*/
TestResult test(ASPCore2Program program);
TestResult test(InputProgram program);

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public interface AnswerSet extends Comparable<AnswerSet> {
boolean isEmpty();

/**
* List {@link Atom}s in this answer set satisfying the given {@link AnswerSetQuery}.
* List {@link Atom}s in this answer set satisfying the given {@link AtomQuery}.
*/
List<Atom> query(AtomQuery query);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package at.ac.tuwien.kr.alpha.api;

import at.ac.tuwien.kr.alpha.api.programs.ASPCore2Program;
import at.ac.tuwien.kr.alpha.api.programs.InputProgram;
import at.ac.tuwien.kr.alpha.api.programs.Predicate;
import at.ac.tuwien.kr.alpha.api.programs.terms.Term;

/**
* A comparison operator that can be used in {@link ASPCore2Program}s.
* A comparison operator that can be used in {@link InputProgram}s.
*
* Copyright (c) 2021, the Alpha Team.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package at.ac.tuwien.kr.alpha.api;

import at.ac.tuwien.kr.alpha.api.programs.ASPCore2Program;
import at.ac.tuwien.kr.alpha.api.programs.InputProgram;
import at.ac.tuwien.kr.alpha.api.programs.NormalProgram;
import at.ac.tuwien.kr.alpha.api.programs.analysis.ComponentGraph;
import at.ac.tuwien.kr.alpha.api.programs.analysis.DependencyGraph;
Expand All @@ -13,13 +13,13 @@
public interface DebugSolvingContext {

/**
* The normalized version of the {@link ASPCore2Program} that is being solved.
* See {@link Alpha#normalizeProgram(ASPCore2Program)}.
* The normalized version of the {@link InputProgram} that is being solved.
* See {@link Alpha#normalizeProgram(InputProgram)}.
*/
NormalProgram getNormalizedProgram();

/**
* The fully preprocessed version of the {@link ASPCore2Program} that is being solved.
* The fully preprocessed version of the {@link InputProgram} that is being solved.
* This differs from the value of {@link DebugSolvingContext#getNormalizedProgram()} in the stratified part of the normalized program may
* already be evaluated depending on the respective configuration of {@link Alpha}.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@

@FunctionalInterface
public interface PredicateInterpretation {
Set<List<ConstantTerm<?>>> TRUE = singleton(emptyList());
Set<List<ConstantTerm<?>>> FALSE = emptySet();

Set<List<Term>> TRUE = singleton(emptyList());
Set<List<Term>> FALSE = emptySet();

String EVALUATE_RETURN_TYPE_NAME_PREFIX = Set.class.getName() + "<" + List.class.getName() + "<" + ConstantTerm.class.getName();

Set<List<ConstantTerm<?>>> evaluate(List<Term> terms);
Set<List<Term>> evaluate(List<Term> terms);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

/**
* Configuration structure controlling how {@link AggregateLiteral}s are compiled during program normalization in
* {@link Alpha#normalizeProgram(at.ac.tuwien.kr.alpha.api.programs.ASPCore2Program)}.
* {@link Alpha#normalizeProgram(at.ac.tuwien.kr.alpha.api.programs.InputProgram)}.
*
* Copyright (c) 2021, the Alpha Team.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,28 @@ public class SystemConfig {
// initializing from those values in order to have the values accessible in
// contexts where no AlphaConfig instance exists (e.g. argument parsing from
// command line)
public static final String DEFAULT_GROUNDER_NAME = "naive";
public static final boolean DEFAULT_ACCEPT_EVOLOG = true;
public static final String DEFAULT_SOLVER_NAME = "default";
public static final String DEFAULT_NOGOOD_STORE_NAME = "alphaRoaming";
public static final Heuristic DEFAULT_BRANCHING_HEURISTIC = Heuristic.VSIDS;
public static final BinaryNoGoodPropagationEstimationStrategy DEFAULT_MOMS_STRATEGY = BinaryNoGoodPropagationEstimationStrategy.CountBinaryWatches;
public static final long DEFAULT_SEED = System.nanoTime();
public static final boolean DEFAULT_DETERMINISTIC = false;
public static final boolean DEFAULT_PRINT_STATS = false;
public static final boolean DEFAULT_QUIET = false;
public static final boolean DEFAULT_DISABLE_JUSTIFICATION_SEARCH = false;
public static final boolean DEFAULT_DEBUG_INTERNAL_CHECKS = false;
public static final boolean DEFAULT_SORT_ANSWER_SETS = false;
public static final List<Integer> DEFAULT_REPLAY_CHOICES = Collections.emptyList();
public static final boolean DEFAULT_STRATIFIED_EVALUATION = true;
public static final boolean DEFAULT_DISABLE_NOGOOD_DELETION = false;
public static final String DEFAULT_GROUNDER_TOLERANCE_CONSTRAINTS = GrounderHeuristicsConfiguration.STRICT_STRING;
public static final String DEFAULT_GROUNDER_TOLERANCE_RULES = GrounderHeuristicsConfiguration.STRICT_STRING;
public static final boolean DEFAULT_GROUNDER_ACCUMULATOR_ENABLED = false;
public static final String DEFAULT_ATOM_SEPARATOR = ", ";
public static final AggregateRewritingConfig DEFAULT_AGGREGATE_REWRITING_CONFIG = new AggregateRewritingConfig();

private String grounderName = DEFAULT_GROUNDER_NAME;
private boolean acceptEvologPrograms = DEFAULT_ACCEPT_EVOLOG;
private String solverName = DEFAULT_SOLVER_NAME;
private String nogoodStoreName = DEFAULT_NOGOOD_STORE_NAME;
private boolean deterministic = DEFAULT_DETERMINISTIC;
private long seed = DEFAULT_SEED;
private boolean debugInternalChecks = DEFAULT_DEBUG_INTERNAL_CHECKS;
private Heuristic branchingHeuristic = DEFAULT_BRANCHING_HEURISTIC;
Expand All @@ -78,25 +75,13 @@ public class SystemConfig {
private boolean disableJustificationSearch = DEFAULT_DISABLE_JUSTIFICATION_SEARCH;
private boolean sortAnswerSets = DEFAULT_SORT_ANSWER_SETS;
private List<Integer> replayChoices = DEFAULT_REPLAY_CHOICES;
private boolean evaluateStratifiedPart = DEFAULT_STRATIFIED_EVALUATION;
private boolean disableNoGoodDeletion = DEFAULT_DISABLE_NOGOOD_DELETION;
private String grounderToleranceConstraints = DEFAULT_GROUNDER_TOLERANCE_CONSTRAINTS;
private String grounderToleranceRules = DEFAULT_GROUNDER_TOLERANCE_RULES;
private boolean grounderAccumulatorEnabled = DEFAULT_GROUNDER_ACCUMULATOR_ENABLED;
private String atomSeparator = DEFAULT_ATOM_SEPARATOR;
private AggregateRewritingConfig aggregateRewritingConfig = DEFAULT_AGGREGATE_REWRITING_CONFIG;

public String getGrounderName() {
return this.grounderName;
}

/**
* Sets the name of the grounder implementation to use.
*/
public void setGrounderName(String grounderName) {
this.grounderName = grounderName;
}

public String getSolverName() {
return this.solverName;
}
Expand All @@ -119,18 +104,6 @@ public void setNogoodStoreName(String nogoodStoreName) {
this.nogoodStoreName = nogoodStoreName;
}

public boolean isDeterministic() {
return this.deterministic;
}

/**
* If set, 0 will be used as random seed for solver-internal branching heuristics, resulting in answer sets of the same program being found
* in a fixed sequence.
*/
public void setDeterministic(boolean deterministic) {
this.deterministic = deterministic;
}

public long getSeed() {
return this.seed;
}
Expand Down Expand Up @@ -224,14 +197,6 @@ public void setReplayChoices(String replayChoices) {
this.replayChoices = Arrays.stream(replayChoices.split(",")).map(String::trim).map(Integer::valueOf).collect(Collectors.toList());
}

public boolean isEvaluateStratifiedPart() {
return this.evaluateStratifiedPart;
}

public void setEvaluateStratifiedPart(boolean evaluateStratifiedPart) {
this.evaluateStratifiedPart = evaluateStratifiedPart;
}

public boolean isDisableNoGoodDeletion() {
return this.disableNoGoodDeletion;
}
Expand Down Expand Up @@ -280,4 +245,12 @@ public void setAggregateRewritingConfig(AggregateRewritingConfig aggregateRewrit
this.aggregateRewritingConfig = aggregateRewritingConfig;
}

public boolean isAcceptEvologPrograms() {
return this.acceptEvologPrograms;
}

public void setAcceptEvologPrograms(boolean acceptEvologPrograms) {
this.acceptEvologPrograms = acceptEvologPrograms;
}

}
Loading
Loading