You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Evalv3 omitted the implementation of the following
rule:
if all the marked disjuncts of a marked disjunction are
eliminated, then the remaining unmarked disjuncts are
considered as if they originated from an unmarked
disjunction.
This change implements this.
We used gemini 2.5 to derive a proof of the correctness
of this algorithm. In the general case, it is commutative,
but not associative. However, this proof was derived for
any possible lattice. Making it more specific for the CUE
lattice, no counter example could be found.
To be sure, we took the counter examples of the general
case, or more specifically the recipe on how to construct
it, and created some CUE code that conforms to this
pattern. The resulting tests all showed that CUE was
associative.
Although not a full proof, it will have to suffice for now.
Note that with the foreseen changes to default handling,
this would not longer be an issue.
Fixes#3908
Issue #1304
Signed-off-by: Marcel van Lohuizen <[email protected]>
Change-Id: Ifde75945952f00e1c4c7b07dca833e59144b919c
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1214564
TryBot-Result: CUEcueckoo <[email protected]>
Unity-Result: CUE porcuepine <[email protected]>
Reviewed-by: Matthew Sackman <[email protected]>
0 commit comments