From 8faa4ec104f5d7089b07842bcf6464dc2e4c2870 Mon Sep 17 00:00:00 2001
From: Katja Goltsova <katja.goltsova@protonmail.com>
Date: Thu, 6 Oct 2022 15:51:34 +0200
Subject: [PATCH] Print and/or connector formulas with 1 argument

---
 lisa-utils/src/main/scala/lisa/utils/Parser.scala      | 1 +
 lisa-utils/src/test/scala/lisa/utils/PrinterTest.scala | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/lisa-utils/src/main/scala/lisa/utils/Parser.scala b/lisa-utils/src/main/scala/lisa/utils/Parser.scala
index 3bc61753..7b6eda22 100644
--- a/lisa-utils/src/main/scala/lisa/utils/Parser.scala
+++ b/lisa-utils/src/main/scala/lisa/utils/Parser.scala
@@ -460,6 +460,7 @@ object Parser {
       },
       {
         case ConnectorFormula(c @ (Iff | Implies), Seq(left, right)) => Seq(left ~ Some(c ~ right))
+        case ConnectorFormula((And | Or), Seq(f)) => Seq(f ~ None)
         case f => Seq(f ~ None)
       }
     )
diff --git a/lisa-utils/src/test/scala/lisa/utils/PrinterTest.scala b/lisa-utils/src/test/scala/lisa/utils/PrinterTest.scala
index 221f69e7..e7c2da63 100644
--- a/lisa-utils/src/test/scala/lisa/utils/PrinterTest.scala
+++ b/lisa-utils/src/test/scala/lisa/utils/PrinterTest.scala
@@ -98,6 +98,15 @@ class PrinterTest extends AnyFunSuite with TestUtils {
     assert(Parser.printFormula(ConnectorFormula(Or, Seq(ConnectorFormula(Or, Seq(a, b)), c))) == "a ∨ b ∨ c")
   }
 
+  test("and/or of 1 argument") {
+    assert(Parser.printFormula(ConnectorFormula(And, Seq(a))) == "a")
+    assert(Parser.printFormula(ConnectorFormula(Or, Seq(a))) == "a")
+
+    assert(Parser.printFormula(ConnectorFormula(Implies, Seq(ConnectorFormula(Or, Seq(a)), ConnectorFormula(And, Seq(a))))) == "(a) ⇒ (a)")
+    assert(Parser.printFormula(ConnectorFormula(Implies, Seq(a, a))) == "a ⇒ a")
+    assert(Parser.printFormula(BinderFormula(Forall, x, ConnectorFormula(Or, Seq(a)))) == "∀'x. a")
+  }
+
   test("connectors of >2 arguments") {
     assert(Parser.printFormula(ConnectorFormula(And, Seq(a, b, c))) == "a ∧ b ∧ c")
     assert(Parser.printFormula(ConnectorFormula(Or, Seq(a, b, c))) == "a ∨ b ∨ c")
-- 
GitLab