Disable macros when higher-order (#4266)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 14 Apr 2020 23:19:06 +0000 (18:19 -0500)
committerGitHub <noreply@github.com>
Tue, 14 Apr 2020 23:19:06 +0000 (18:19 -0500)
Fixes #4160.

src/smt/set_defaults.cpp

index a0f1b271590a8b2a2269cd48aeba066fb6c57784..1384a28487ae01f7cf4cefdd475ae00f842bdee8 100644 (file)
@@ -864,6 +864,12 @@ void setDefaults(SmtEngine& smte, LogicInfo& logic)
       // by default, use store axioms only if --ho-elim is set
       options::hoElimStoreAx.set(options::hoElim());
     }
+    // Cannot use macros, since lambda lifting and macro elimination are inverse
+    // operations.
+    if (options::macrosQuant())
+    {
+      options::macrosQuant.set(false);
+    }
   }
   if (options::fmfFunWellDefinedRelevant())
   {