X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=hints%2Fassignment_7_hint_6.mdwn;h=38f6c2e09b38449cd7bdda53b8aeb7c8c6a6b9a9;hp=d69c92e7ed4d65fc9bfef71003559acb4efed46c;hb=0ffedd938c14e7d37e912259eaf632a4fec5ec42;hpb=04296a25e1123f3e7240727f1e10142a1afadb7e diff --git a/hints/assignment_7_hint_6.mdwn b/hints/assignment_7_hint_6.mdwn index d69c92e7..38f6c2e0 100644 --- a/hints/assignment_7_hint_6.mdwn +++ b/hints/assignment_7_hint_6.mdwn @@ -27,6 +27,8 @@ in unit_set new_dpm;; + **Note: Simon pointed out a subtle error in this code, which we will look into fixing. At the moment, the subtle error is still there.** + * Representing \[[and φ ψ]] is simple: let and_op (phi : clause) (psi : clause) : clause = @@ -39,7 +41,7 @@ let or_op (phi : clause) (psi : clause) = fun one_dpm -> unit_set ( fun (r, h) -> - in let truth_value' = ( + let truth_value' = ( truths (phi one_dpm) (r, h) <> [] || truths (bind_set (negate_op phi one_dpm) psi) (r, h) <> [] ) in (truth_value', r, h)) @@ -47,7 +49,7 @@ let if_op (phi : clause) (psi : clause) : clause = fun one_dpm -> unit_set ( fun (r, h) -> - in let truth_value' = List.for_all (fun one_dpm -> + let truth_value' = List.for_all (fun one_dpm -> let (truth_value, _, _) = one_dpm (r, h) in truth_value = false || truths (psi one_dpm) (r, h) <> [] ) (phi one_dpm)