diff --git a/CHANGES.md b/CHANGES.md index e08c7e69..5fa3332a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,8 @@ ## Ongoing +- - rename conditional operator `default` to `getOrElse` + ## v0.0.4 - - introduce `variable_declare(X,open)`, `variable_assign(X,E)`, and diff --git a/docs/_hooks/links_hook.py b/docs/_hooks/links_hook.py index a0c9c835..672eb0ba 100644 --- a/docs/_hooks/links_hook.py +++ b/docs/_hooks/links_hook.py @@ -79,7 +79,7 @@ # Conditionals "If": "reference/conditionals.md#if", "Ite": "reference/conditionals.md#ite", - "Default": "reference/conditionals.md#default", + "GetOrElse": "reference/conditionals.md#getorelse", "HasValue": "reference/conditionals.md#hasvalue", # Optimization "Optimization": "reference/optimization.md", diff --git a/docs/developer/fact-format.md b/docs/developer/fact-format.md index eb3a3320..a91ca393 100644 --- a/docs/developer/fact-format.md +++ b/docs/developer/fact-format.md @@ -51,7 +51,7 @@ This page describes the EBNF grammar for the fact format used by the constraint | | "conj" | "disj" | "leqv" | "limp" | "lnot" | "lxor" | "snot" | "wnot" - ::= "if" | "default" | "ite" | "hasValue" + ::= "if" | "getOrElse" | "ite" | "hasValue" ::= | | "sqrt" | "cos" | "sin" | "tan" diff --git a/docs/fact-format/fact-format.tex b/docs/fact-format/fact-format.tex index 757c156c..e68439ae 100644 --- a/docs/fact-format/fact-format.tex +++ b/docs/fact-format/fact-format.tex @@ -52,7 +52,7 @@ \subsection{Building expression terms} ~\alt | `conj' | `disj' | `leqv' \alt `limp' | `lnot' | `lxor' | `snot' | `wnot' - ::= `if' | `default' | `ite' | `hasValue' + ::= `if' | `getOrElse' | `ite' | `hasValue' ::= ~\alt | `sqrt' | `cos' | `sin' | `tan' @@ -259,12 +259,12 @@ \subsection*{Examples} ())))) \end{verbatim} -\paragraph{default function} +\paragraph{getOrElse function} \begin{verbatim} variable_define(x0,val(int,0)). variable_define(x1,operation(if,(variable(cond),(val(int,1),())))). -variable_define(y0,operation(default,(variable(x0),(variable(x1),())))). +variable_define(y0,operation(getOrElse,(variable(x0),(variable(x1),())))). \end{verbatim} diff --git a/docs/reference/conditionals.md b/docs/reference/conditionals.md index 6f742ef1..11c7e5cb 100644 --- a/docs/reference/conditionals.md +++ b/docs/reference/conditionals.md @@ -77,17 +77,17 @@ The `ite` operator expands on the `if` operator by allowing to specify an altern --- -## Default +## GetOrElse -The `default` operator is used to provide a fallback value if the first [Expression] is undefined (e.g. evaluates to [`none`]). +The `getOrElse` operator is used to provide a fallback value if the first [Expression] is undefined (e.g. evaluates to [`none`]). | Operator | Name | Signature | Description | | :--- | :--- | :--- | :--- | -| `default` | Default | (A | [none], B) $\to$ A \| B | Returns the value of `A` if it is defined, otherwise the value of `B`. | +| `getOrElse` | GetOrElse | (A | [none], B) $\to$ A \| B | Returns the value of `A` if it is defined, otherwise the value of `B`. | !!! Example ```prolog - variable_define(z, operation(default, (val(int, 2),(val(int,5),())))). + variable_define(z, operation(getOrElse, (val(int, 2),(val(int,5),())))). ``` Here, because the value is defined, `z` will be assigned the value `2`. @@ -99,7 +99,7 @@ The `default` operator is used to provide a fallback value if the first [Express However: ```prolog - variable_define(z, operation(default, (val(none, none),(val(int,5),())))). + variable_define(z, operation(getOrElse, (val(none, none),(val(int,5),())))). ``` Here, since the first value is [none], `z` will be assigned the value `5`. diff --git a/src/constraint_handler/data/0_context/operator.lp b/src/constraint_handler/data/0_context/operator.lp index 1f44bb3f..c469a549 100644 --- a/src/constraint_handler/data/0_context/operator.lp +++ b/src/constraint_handler/data/0_context/operator.lp @@ -19,9 +19,9 @@ operator_declare(limp,(bool,(bool,())),bool). _operator_recoverable(limp). %%%%%%%%%%%%%%%%% conditionals -_operator_recoverable(default). -operator_declare(default,(T1,(T2,())),T1) :- _type(T1), _type(T2), T1 != none. -operator_declare(default,(none,(T,())),T) :- _type(T). +_operator_recoverable(getOrElse). +operator_declare(getOrElse,(T1,(T2,())),T1) :- _type(T1), _type(T2), T1 != none. +operator_declare(getOrElse,(none,(T,())),T) :- _type(T). operator_declare(hasValue,(T,()),bool) :- _type(T). _operator_recoverable(if). operator_declare(if,(bool,(T,())),T) :- _type(T). diff --git a/src/constraint_handler/data/6_solve/compile/conditionals.lp b/src/constraint_handler/data/6_solve/compile/conditionals.lp index d404afe6..a4052fa0 100644 --- a/src/constraint_handler/data/6_solve/compile/conditionals.lp +++ b/src/constraint_handler/data/6_solve/compile/conditionals.lp @@ -38,9 +38,9 @@ _se_value(operation(if,(E1,(E2,()))),val(none,none)) :- direct_query(operation(i _se_value(operation(if,(E1,(E2,()))),val(none,none)) :- direct_query(operation(if,(E1,(E2,())))), _se_value(E1,val(none,none)). _se_value(operation(if,(E1,(E2,()))),bad) :- direct_query(operation(if,(E1,(E2,())))), _se_value(E1,bad). -%%%%%%%%%%%%%%%%% default -_se_value(operation(default,(E1,TL)),V) :- direct_query(operation(default,(E1,TL))), _se_value(E1,V), V!=val(none,none). -_se_value(operation(default,(E1,(E2,()))),V) :- direct_query(operation(default,(E1,(E2,())))), _se_value(E1,val(none,none)), _se_value(E2,V). +%%%%%%%%%%%%%%%%% getOrElse +_se_value(operation(getOrElse,(E1,TL)),V) :- direct_query(operation(getOrElse,(E1,TL))), _se_value(E1,V), V!=val(none,none). +_se_value(operation(getOrElse,(E1,(E2,()))),V) :- direct_query(operation(getOrElse,(E1,(E2,())))), _se_value(E1,val(none,none)), _se_value(E2,V). %%%%%%%%%%%%%%%%% hasValue _se_value(operation(hasValue,(E1,())),val(bool,true)) :- direct_query(operation(hasValue,(E1,()))), _se_value(E1,V), V != val(none,none), V !=bad. diff --git a/src/constraint_handler/data/6_solve/compile2/boolean.lp b/src/constraint_handler/data/6_solve/compile2/boolean.lp index 9b6d58e4..da355995 100644 --- a/src/constraint_handler/data/6_solve/compile2/boolean.lp +++ b/src/constraint_handler/data/6_solve/compile2/boolean.lp @@ -295,18 +295,18 @@ _set_contains(operation(if,(E1,(E2,()))), Val) :- _se_value(E1, val(bool, true)), _set_contains(E2, Val). -%%%%%%%%%%%%%%%%%% default +%%%%%%%%%%%%%%%%%% getOrElse :- - _expression(compile2, operation(default,(E1,E2))), + _expression(compile2, operation(getOrElse,(E1,E2))), _se_value(E1, Value), Value != val(none, none), - not _se_value(operation(default,(E1,E2)), Value). + not _se_value(operation(getOrElse,(E1,E2)), Value). :- - _expression(compile2, operation(default,(E1,(E2,())))), + _expression(compile2, operation(getOrElse,(E1,(E2,())))), _se_value(E1, val(none, none)), _se_value(E2, Value), - not _se_value(operation(default,(E1,(E2,()))), Value). + not _se_value(operation(getOrElse,(E1,(E2,()))), Value). %%%%%%%%%%%%%%%%%% hasValue :- diff --git a/src/constraint_handler/evaluator.py b/src/constraint_handler/evaluator.py index 5679c6c2..7fe07b55 100644 --- a/src/constraint_handler/evaluator.py +++ b/src/constraint_handler/evaluator.py @@ -187,7 +187,7 @@ def eq_operator(o, lval, rval): def conditional_operator(o, args): match o: - case ConditionalOperator.default: + case ConditionalOperator.getOrElse: return atom.EvalResult(args[0] if args[0] is not None else args[1], NO_ERRORS) case ConditionalOperator.IF: if args[0] is expression.Bad.bad: @@ -336,7 +336,7 @@ def expr(expr_, globals_id, locals_env): operators.LogicOperator.limp, operators.LogicOperator.ite, ConditionalOperator.IF, - ConditionalOperator.default, + ConditionalOperator.getOrElse, operators.ArithmeticOperator.pow, ] diff --git a/src/constraint_handler/schemas/expression.py b/src/constraint_handler/schemas/expression.py index b88b896e..cdbc7bda 100644 --- a/src/constraint_handler/schemas/expression.py +++ b/src/constraint_handler/schemas/expression.py @@ -19,9 +19,9 @@ Bad = common.Bad -# ConditionalOperator = PPEnum("ConditionalOperator", ["default", "if"]) +# ConditionalOperator = PPEnum("ConditionalOperator", ["getOrElse", "if"]) class ConditionalOperator(Enum): - default = "default" + getOrElse = "getOrElse" IF = "if" hasValue = "hasValue" diff --git a/src/constraint_handler/utils/python_domain.py b/src/constraint_handler/utils/python_domain.py index eac642eb..cc619753 100644 --- a/src/constraint_handler/utils/python_domain.py +++ b/src/constraint_handler/utils/python_domain.py @@ -1668,7 +1668,7 @@ def op_minmax(cls, *domains: Domain, prefer_max: bool) -> Domain: ) @classmethod - def op_default(cls, primary: Domain, fallback: Domain) -> Domain: + def op_getOrElse(cls, primary: Domain, fallback: Domain) -> Domain: """Return the primary domain, falling back when it is only none-like.""" if not primary.is_none: return replace(primary, is_none=False) diff --git a/tests/correctness/core/conditional_assign.expected.all b/tests/correctness/core/conditional_assign.expected.all index 0ebf7698..08618919 100644 --- a/tests/correctness/core/conditional_assign.expected.all +++ b/tests/correctness/core/conditional_assign.expected.all @@ -1,2 +1,2 @@ value(z,val(bool,true)) -evaluated(leqv,(operation(hasValue,(variable(a),())),(operation(leq,(operation(default,(variable(a),(val(int,20),()))),(val(int,3),()))),())),val(bool,true)) +evaluated(leqv,(operation(hasValue,(variable(a),())),(operation(leq,(operation(getOrElse,(variable(a),(val(int,20),()))),(val(int,3),()))),())),val(bool,true)) diff --git a/tests/correctness/core/conditional_assign.lp b/tests/correctness/core/conditional_assign.lp index 4575f162..cb546fb8 100644 --- a/tests/correctness/core/conditional_assign.lp +++ b/tests/correctness/core/conditional_assign.lp @@ -7,15 +7,15 @@ %%%% x0 = 0 %%%% if cond: %%%% x1 = 1 -%%%% y0 = default(x1,x0) +%%%% y0 = getOrElse(x1,x0) %%%% z = y0 == 1 or y0 == 0 %%%% { a := 0; a := 1 } 1 -%%%% hasValue(a) iff default negation (not a) +%%%% hasValue(a) iff getOrElse negation (not a) %%%% hasValue(a) iff hasValue(not a) %%%% hasValue(a) iff hasValue(not a) %%% all: -%%% hasValue(a) iff default(a < 2,false) +%%% hasValue(a) iff getOrElse(a < 2,false) %%% any: %%% hasValue(a)==true hasValue(a)==false @@ -23,7 +23,7 @@ variable_declare(cond,boolDomain). variable_domain(cond,val(none,none)). variable_define(x0,val(int,0)). variable_define(x1,operation(if,(variable(cond),(val(int,1),())))). -variable_define(y0,operation(default,(variable(x1),(variable(x0),())))). +variable_define(y0,operation(getOrElse,(variable(x1),(variable(x0),())))). variable_define(z,operation(disj, (operation(eq,(variable(y0),(val(int,1),()))), (operation(eq,(variable(y0),(val(int,0),()))),())))). @@ -32,5 +32,5 @@ variable_declare(a,fromFacts). variable_domain(a,(val(int,0..1);val(none,none))). evaluate(hasValue,(variable(a),())). evaluate(leqv,(operation(hasValue,(variable(a),())), - (operation(leq,(operation(default,(variable(a),(val(int,20),()))),(val(int,3),()))), + (operation(leq,(operation(getOrElse,(variable(a),(val(int,20),()))),(val(int,3),()))), ()))). diff --git a/tests/correctness/core/custom_globals.lp b/tests/correctness/core/custom_globals.lp index 833ac275..144e7b1f 100644 --- a/tests/correctness/core/custom_globals.lp +++ b/tests/correctness/core/custom_globals.lp @@ -7,7 +7,7 @@ execution_run(flooring). variable_define(yep,operation(python("myths.floor"),(val(float,float("3.333")),()))). -variable_define(nope,operation(default,(operation(python("math.floor"),(val(float,float("3.333")),())),(val(int,5),())))). +variable_define(nope,operation(getOrElse,(operation(python("math.floor"),(val(float,float("3.333")),())),(val(int,5),())))). main_solverIdentifier(3). diff --git a/tests/correctness/datatype/conditional/orElse/bad.expected.all b/tests/correctness/datatype/conditional/orElse/bad.expected.all index 1ec9cd8c..96b9230d 100644 --- a/tests/correctness/datatype/conditional/orElse/bad.expected.all +++ b/tests/correctness/datatype/conditional/orElse/bad.expected.all @@ -1,2 +1,2 @@ -evaluated(default,(bad,(val(int,2),())),bad) -evaluated(default,(val(none,none),(bad,())),bad) +evaluated(getOrElse,(bad,(val(int,2),())),bad) +evaluated(getOrElse,(val(none,none),(bad,())),bad) diff --git a/tests/correctness/datatype/conditional/orElse/bad.lp b/tests/correctness/datatype/conditional/orElse/bad.lp index 02626705..11d70957 100644 --- a/tests/correctness/datatype/conditional/orElse/bad.lp +++ b/tests/correctness/datatype/conditional/orElse/bad.lp @@ -1,2 +1,2 @@ -evaluate(default,(bad,(val(int,2),()))). -evaluate(default,(val(none,none),(bad,()))). +evaluate(getOrElse,(bad,(val(int,2),()))). +evaluate(getOrElse,(val(none,none),(bad,()))). diff --git a/tests/correctness/datatype/conditional/orElse/basic.expected.all b/tests/correctness/datatype/conditional/orElse/basic.expected.all index 9e254df3..9c3b3031 100644 --- a/tests/correctness/datatype/conditional/orElse/basic.expected.all +++ b/tests/correctness/datatype/conditional/orElse/basic.expected.all @@ -1,6 +1,6 @@ -evaluated(default,(val(none,none),(val(int,2),())),val(int,2)) -evaluated(default,(val(none,none),(val(none,none),())),val(none,none)) -evaluated(default,(val(int,1),(val(int,2),())),val(int,1)) -evaluated(default,(val(int,1),(val(none,none),())),val(int,1)) -evaluated(default,(val(bool,true),(val(int,2),())),val(bool,true)) -evaluated(default,(val(bool,false),(val(int,2),())),val(bool,false)) +evaluated(getOrElse,(val(none,none),(val(int,2),())),val(int,2)) +evaluated(getOrElse,(val(none,none),(val(none,none),())),val(none,none)) +evaluated(getOrElse,(val(int,1),(val(int,2),())),val(int,1)) +evaluated(getOrElse,(val(int,1),(val(none,none),())),val(int,1)) +evaluated(getOrElse,(val(bool,true),(val(int,2),())),val(bool,true)) +evaluated(getOrElse,(val(bool,false),(val(int,2),())),val(bool,false)) diff --git a/tests/correctness/datatype/conditional/orElse/basic.expected.none b/tests/correctness/datatype/conditional/orElse/basic.expected.none index 72f6c5c8..4468938a 100644 --- a/tests/correctness/datatype/conditional/orElse/basic.expected.none +++ b/tests/correctness/datatype/conditional/orElse/basic.expected.none @@ -1,15 +1,15 @@ -evaluated(default,(val(int,1),(val(int,2),())),val(int,2)) -evaluated(default,(val(int,1),(val(int,2),())),val(none,none)) -evaluated(default,(val(int,1),(val(int,2),())),bad) -evaluated(default,(bad,(val(int,2),())),val(int,1)) -evaluated(default,(bad,(val(int,2),())),val(int,2)) -evaluated(default,(bad,(val(int,2),())),val(none,none)) -evaluated(default,(val(none,none),(val(int,2),())),val(int,1)) -evaluated(default,(val(none,none),(val(int,2),())),val(none,none)) -evaluated(default,(val(none,none),(val(int,2),())),bad) -evaluated(default,(val(none,none),(bad,())),val(int,1)) -evaluated(default,(val(none,none),(bad,())),val(int,2)) -evaluated(default,(val(none,none),(bad,())),val(none,none)) -evaluated(default,(val(none,none),(val(none,none),())),val(int,1)) -evaluated(default,(val(none,none),(val(none,none),())),val(int,2)) -evaluated(default,(val(none,none),(val(none,none),())),bad) +evaluated(getOrElse,(val(int,1),(val(int,2),())),val(int,2)) +evaluated(getOrElse,(val(int,1),(val(int,2),())),val(none,none)) +evaluated(getOrElse,(val(int,1),(val(int,2),())),bad) +evaluated(getOrElse,(bad,(val(int,2),())),val(int,1)) +evaluated(getOrElse,(bad,(val(int,2),())),val(int,2)) +evaluated(getOrElse,(bad,(val(int,2),())),val(none,none)) +evaluated(getOrElse,(val(none,none),(val(int,2),())),val(int,1)) +evaluated(getOrElse,(val(none,none),(val(int,2),())),val(none,none)) +evaluated(getOrElse,(val(none,none),(val(int,2),())),bad) +evaluated(getOrElse,(val(none,none),(bad,())),val(int,1)) +evaluated(getOrElse,(val(none,none),(bad,())),val(int,2)) +evaluated(getOrElse,(val(none,none),(bad,())),val(none,none)) +evaluated(getOrElse,(val(none,none),(val(none,none),())),val(int,1)) +evaluated(getOrElse,(val(none,none),(val(none,none),())),val(int,2)) +evaluated(getOrElse,(val(none,none),(val(none,none),())),bad) diff --git a/tests/correctness/datatype/conditional/orElse/basic.lp b/tests/correctness/datatype/conditional/orElse/basic.lp index 3583d551..1f00b809 100644 --- a/tests/correctness/datatype/conditional/orElse/basic.lp +++ b/tests/correctness/datatype/conditional/orElse/basic.lp @@ -1,6 +1,6 @@ -evaluate(default,(val(int,1),(val(int,2),()))). -evaluate(default,(val(none,none),(val(int,2),()))). -evaluate(default,(val(none,none),(val(none,none),()))). -evaluate(default,(val(int,1),(val(none,none),()))). -evaluate(default,(val(bool,true),(val(int,2),()))). -evaluate(default,(val(bool,false),(val(int,2),()))). +evaluate(getOrElse,(val(int,1),(val(int,2),()))). +evaluate(getOrElse,(val(none,none),(val(int,2),()))). +evaluate(getOrElse,(val(none,none),(val(none,none),()))). +evaluate(getOrElse,(val(int,1),(val(none,none),()))). +evaluate(getOrElse,(val(bool,true),(val(int,2),()))). +evaluate(getOrElse,(val(bool,false),(val(int,2),()))). diff --git a/tests/correctness/datatype/conditional/orElse/recovery.expected.all b/tests/correctness/datatype/conditional/orElse/recovery.expected.all index 8c85302b..a87c1352 100644 --- a/tests/correctness/datatype/conditional/orElse/recovery.expected.all +++ b/tests/correctness/datatype/conditional/orElse/recovery.expected.all @@ -1 +1 @@ -evaluated(default,(val(int,2),(bad,())),val(int,2)) +evaluated(getOrElse,(val(int,2),(bad,())),val(int,2)) diff --git a/tests/correctness/datatype/conditional/orElse/recovery.lp b/tests/correctness/datatype/conditional/orElse/recovery.lp index 085cbb22..3512d164 100644 --- a/tests/correctness/datatype/conditional/orElse/recovery.lp +++ b/tests/correctness/datatype/conditional/orElse/recovery.lp @@ -1 +1 @@ -evaluate(default,(val(int,2),(bad,()))). +evaluate(getOrElse,(val(int,2),(bad,()))). diff --git a/tests/correctness/datatype/conditional/orElse/variable.expected.any b/tests/correctness/datatype/conditional/orElse/variable.expected.any index d83c2f45..5726fb4e 100644 --- a/tests/correctness/datatype/conditional/orElse/variable.expected.any +++ b/tests/correctness/datatype/conditional/orElse/variable.expected.any @@ -1,6 +1,6 @@ -evaluated(default,(variable(x),(val(int,2),())),val(int,1)) -evaluated(default,(variable(x),(val(int,2),())),val(int,2)) -evaluated(default,(variable(x),(val(int,2),())),bad) -evaluated(default,(variable(x),(val(none,none),())),val(none,none)) -evaluated(default,(variable(x),(val(none,none),())),bad) -evaluated(default,(variable(x),(bad,())),bad) +evaluated(getOrElse,(variable(x),(val(int,2),())),val(int,1)) +evaluated(getOrElse,(variable(x),(val(int,2),())),val(int,2)) +evaluated(getOrElse,(variable(x),(val(int,2),())),bad) +evaluated(getOrElse,(variable(x),(val(none,none),())),val(none,none)) +evaluated(getOrElse,(variable(x),(val(none,none),())),bad) +evaluated(getOrElse,(variable(x),(bad,())),bad) diff --git a/tests/correctness/datatype/conditional/orElse/variable.lp b/tests/correctness/datatype/conditional/orElse/variable.lp index a74da3ea..cfbeb211 100644 --- a/tests/correctness/datatype/conditional/orElse/variable.lp +++ b/tests/correctness/datatype/conditional/orElse/variable.lp @@ -2,6 +2,6 @@ variable_declare(x,fromFacts). variable_domain(x,val(int,1)). variable_domain(x,val(none,none)). variable_domain(x,bad). -evaluate(default,(variable(x),(val(int,2),()))). -evaluate(default,(variable(x),(val(none,none),()))). -evaluate(default,(variable(x),(bad,()))). +evaluate(getOrElse,(variable(x),(val(int,2),()))). +evaluate(getOrElse,(variable(x),(val(none,none),()))). +evaluate(getOrElse,(variable(x),(bad,()))). diff --git a/tests/correctness/error/recovery_conditionals.lp b/tests/correctness/error/recovery_conditionals.lp index 4c8623f5..1a37e193 100644 --- a/tests/correctness/error/recovery_conditionals.lp +++ b/tests/correctness/error/recovery_conditionals.lp @@ -13,7 +13,7 @@ variable_define(if_bad,operation(if,(variable(lt_bad),(val(int,1),())))). variable_define(if_bad_also,operation(if,(val(bool,true),(variable(lt_bad),())))). variable_define(if_recovered,operation(if,(val(bool,false),(variable(lt_bad),())))). -% Operator `default` is recoverable if the default value is bad but not taken. -variable_define(default_bad,operation(default,(variable(lt_bad),(val(int,1),())))). -variable_define(default_bad_also,operation(default,(val(none,none),(variable(lt_bad),())))). -variable_define(default_recovered,operation(default,(val(int,1),(variable(lt_bad),())))). +% Operator `getOrElse` is recoverable if the fallback value is bad but not taken. +variable_define(default_bad,operation(getOrElse,(variable(lt_bad),(val(int,1),())))). +variable_define(default_bad_also,operation(getOrElse,(val(none,none),(variable(lt_bad),())))). +variable_define(default_recovered,operation(getOrElse,(val(int,1),(variable(lt_bad),())))). diff --git a/tests/correctness/execution/optional_run.lp b/tests/correctness/execution/optional_run.lp index c9a90540..efddde5a 100644 --- a/tests/correctness/execution/optional_run.lp +++ b/tests/correctness/execution/optional_run.lp @@ -7,7 +7,7 @@ variable_define(execution_input(add_one,x),variable(x)). execution_declare(add_one,assign(y,operation(add,(variable(x),(val(int,1),())))),(x,()),(y,())). execution_run(add_one) :- not more_options. -variable_define(y,operation(default,(variable(execution_output(add_one,y)),(val(int,10),())))). +variable_define(y,operation(getOrElse,(variable(execution_output(add_one,y)),(val(int,10),())))). variable_define(h,operation(hasValue,(variable(y),()))). #show value/2. diff --git a/tests/investigate/unsat_core.lp b/tests/investigate/unsat_core.lp index c3e8c6f0..e272f539 100644 --- a/tests/investigate/unsat_core.lp +++ b/tests/investigate/unsat_core.lp @@ -13,12 +13,12 @@ %%% usc_d(1): d(1) = true %%% usc_d(2): d(2) = true %%% usc_dd: dd = d(1) | d(2) -%%% usc_de: ensure default(\lnot dd, true) +%%% usc_de: ensure getOrElse(\lnot dd, true) %%% usc_ba: b(1) = true %%% usc_ba: b(2) = true %%% usc_bd: bd = b(1) | b(2) -%%% usc_be: ensure default(\lnot bd, true) +%%% usc_be: ensure getOrElse(\lnot bd, true) %%% usc_e1: e1 = guess true or false %%% usc_e2: e2 = guess true or false @@ -46,14 +46,14 @@ ensure(operation(lnot,(variable(c2),()))). variable_define(d(1),val(bool,true)). variable_define(d(2),val(bool,true)). variable_define(dd,operation(disj,(variable(d(1)),(variable(d(2)),())))). -ensure(operation(default, +ensure(operation(getOrElse, (operation(lnot,(variable(dd),())), (val(bool,true),())))). variable_define(b(1),val(bool,true)). variable_define(b(2),val(bool,true)). variable_define(bd,operation(disj,(variable(b(1)),(variable(b(2)),())))). -ensure(operation(default, +ensure(operation(getOrElse, (operation(lnot,(variable(bd),())), (val(bool,true),())))). diff --git a/tests/test_python_domain.py b/tests/test_python_domain.py index 44a680b2..985d76c6 100644 --- a/tests/test_python_domain.py +++ b/tests/test_python_domain.py @@ -366,7 +366,7 @@ def test_apply_matches_evaluator_for_comparison_and_logic_operators( [ (expression.StringOperator.concat, (build_domain("a", "b"), build_domain("", "z"))), (expression.StringOperator.length, (build_domain("abc"),)), - (expression.ConditionalOperator.default, (build_domain(None, 1), build_domain(2, 3))), + (expression.ConditionalOperator.getOrElse, (build_domain(None, 1), build_domain(2, 3))), (expression.ConditionalOperator.hasValue, (build_domain(None, 1, frozenset({2})),)), ], ) @@ -444,7 +444,7 @@ def test_apply_if_default_and_hasvalue_cover_none_bad_and_false_cases() -> None: is_none=True, ) assert Domain.apply( - expression.ConditionalOperator.default, build_domain(None, 1), build_domain(2, 3) + expression.ConditionalOperator.getOrElse, build_domain(None, 1), build_domain(2, 3) ) == build_domain(1, 2, 3) assert Domain.apply(expression.ConditionalOperator.hasValue, build_domain(None, 1, frozenset())) == Domain.booleans( True, False