[proofs] Alethe: Translate AND_ELIM rule (#7404)
authorLachnitt <lachnitt@stanford.edu>
Tue, 26 Oct 2021 13:40:07 +0000 (06:40 -0700)
committerGitHub <noreply@github.com>
Tue, 26 Oct 2021 13:40:07 +0000 (13:40 +0000)
Implementation of the translation of AND_ELIM rules into the Alethe calculus.

Co-authored-by: Haniel Barbosa <hanielbbarbosa@gmail.com>
src/proof/alethe/alethe_post_processor.cpp

index c3925af225a3ae67ee138972c0bd1bb4834be28f..ae67050257801e812c66fd817859e1a6908ddc29 100644 (file)
@@ -949,6 +949,17 @@ bool AletheProofPostprocessCallback::update(Node res,
                            {},
                            *cdp);
     }
+    // ======== And elimination
+    // This rule is translated according to the singleton pattern.
+    case PfRule::AND_ELIM:
+    {
+      return addAletheStep(AletheRule::AND,
+                           res,
+                           nm->mkNode(kind::SEXPR, d_cl, res),
+                           children,
+                           {},
+                           *cdp);
+    }
     default:
     {
       return addAletheStep(AletheRule::UNDEFINED,