diff options
Diffstat (limited to 'content/zettel/3c3f6.md')
-rw-r--r-- | content/zettel/3c3f6.md | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/content/zettel/3c3f6.md b/content/zettel/3c3f6.md new file mode 100644 index 0000000..c4e4a1e --- /dev/null +++ b/content/zettel/3c3f6.md @@ -0,0 +1,33 @@ ++++ +title = "Forest evaluable not needed in the end" +date = "2023-02-14" +author = "Yann Herklotz" +tags = [] +categories = [] +backlinks = ["3c3f5"] +forwardlinks = ["3c3f7", "3c3f6a"] +zettelid = "3c3f6" ++++ + +At first I had a definition of `forest_evaluable` which said that the +whole tree of predicate expressions could always be evaluated. However, +in addition to that I had strict semantics of predicates, which is why +to evaluate a predicate I had to know that I could evaluate both sides +of the predicate before actually giving it a value. There were two +problems: + +1. With the strict evaluation of predicates, the evaluability of the + predicates was actually not right, because there were some cases + where the predicates would not be evaluable by design. For example, + when we have a predicate assignment that itself is gated: + `if (p) p2 = c`. In this case, when the predicate `p` evaluates to + `false`, then one cannot know if the condition `c` can be evaluated. + This means that one cannot actually evaluate the predicate + $p \implies p_2 := c$. Strict semantics dictate that one has to be + able to get a value for $p_2 := c$ though. +2. Many problems go away when one does not have strict evaluation + anymore, because one will always be able to evaluate on of the + predicates and therefore know the result of predicate. This also + solves the previous problem, which is actually quite subtle, that + when a predicate is maybe not evaluable, it is hidden behind an + implication. |