From 034c70fa29c5c76ecadd9a95dacb1cf4b61dddc9 Mon Sep 17 00:00:00 2001
From: SimonGuilloud <sim-guilloud@bluewin.ch>
Date: Thu, 23 Jun 2022 17:16:19 +0200
Subject: [PATCH] Moved project lisa to root Changed final class into sealed
 class for scala2 compiler

---
 build.sbt                                                 | 2 +-
 lisa-examples/src/main/scala/Example.scala                | 2 +-
 .../main/scala/lisa/kernel/fol/FormulaDefinitions.scala   | 6 +++---
 .../scala/lisa/kernel/fol/FormulaLabelDefinitions.scala   | 4 ++--
 .../src/main/scala/lisa/kernel/fol/TermDefinitions.scala  | 4 ++--
 .../main/scala/lisa/kernel/fol/TermLabelDefinitions.scala | 6 +++---
 .../src/main/scala/lisa/kernel/proof/RunningTheory.scala  | 8 ++++----
 {lisa/src => src}/main/scala/lisa/proven/Main.scala       | 0
 .../main/scala/lisa/proven/SetTheoryLibrary.scala         | 0
 .../main/scala/lisa/proven/mathematics/Mapping.scala      | 0
 .../main/scala/lisa/proven/mathematics/SetTheory.scala    | 0
 .../main/scala/lisa/proven/tactics/Destructors.scala      | 0
 .../main/scala/lisa/proven/tactics/ProofTactics.scala     | 0
 .../lisa/proven/tactics/SimplePropositionalSolver.scala   | 0
 .../test/scala/lisa/proven/InitialProofsTests.scala       | 0
 .../test/scala/lisa/proven/SimpleProverTests.scala        | 0
 16 files changed, 16 insertions(+), 16 deletions(-)
 rename {lisa/src => src}/main/scala/lisa/proven/Main.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/SetTheoryLibrary.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/mathematics/Mapping.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/mathematics/SetTheory.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/tactics/Destructors.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/tactics/ProofTactics.scala (100%)
 rename {lisa/src => src}/main/scala/lisa/proven/tactics/SimplePropositionalSolver.scala (100%)
 rename {lisa/src => src}/test/scala/lisa/proven/InitialProofsTests.scala (100%)
 rename {lisa/src => src}/test/scala/lisa/proven/SimpleProverTests.scala (100%)

diff --git a/build.sbt b/build.sbt
index 83ed4704..06d0a312 100644
--- a/build.sbt
+++ b/build.sbt
@@ -37,7 +37,7 @@ def withTests(project: Project): ClasspathDependency =
 
 lazy val root = Project(
   id = "lisa",
-  base = file("lisa"),
+  base = file("."),
 )
   .settings(commonSettings3)
   .settings(
diff --git a/lisa-examples/src/main/scala/Example.scala b/lisa-examples/src/main/scala/Example.scala
index 725ef410..85e45928 100644
--- a/lisa-examples/src/main/scala/Example.scala
+++ b/lisa-examples/src/main/scala/Example.scala
@@ -15,7 +15,7 @@ import lisa.utils.Printer.*
  */
 object Example {
   def main(args: Array[String]): Unit = {
-    proofExample() // uncomment when exercise finished
+    //proofExample() // uncomment when exercise finished
     // solverExample()
     // tptpExample()
   }
diff --git a/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaDefinitions.scala b/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaDefinitions.scala
index 7f5d4044..0a19f260 100644
--- a/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaDefinitions.scala
+++ b/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaDefinitions.scala
@@ -22,7 +22,7 @@ private[fol] trait FormulaDefinitions extends FormulaLabelDefinitions with TermD
   /**
    * The formula counterpart of [[PredicateLabel]].
    */
-  final case class PredicateFormula(label: PredicateLabel, args: Seq[Term]) extends Formula {
+  sealed case class PredicateFormula(label: PredicateLabel, args: Seq[Term]) extends Formula {
     override def freeVariables: Set[VariableLabel] = args.foldLeft(Set.empty[VariableLabel])((prev, next) => prev union next.freeVariables)
 
     override def constantPredicates: Set[ConstantPredicateLabel] = label match {
@@ -41,7 +41,7 @@ private[fol] trait FormulaDefinitions extends FormulaLabelDefinitions with TermD
   /**
    * The formula counterpart of [[ConnectorLabel]].
    */
-  final case class ConnectorFormula(label: ConnectorLabel, args: Seq[Formula]) extends Formula {
+  sealed case class ConnectorFormula(label: ConnectorLabel, args: Seq[Formula]) extends Formula {
     override def freeVariables: Set[VariableLabel] = args.foldLeft(Set.empty[VariableLabel])((prev, next) => prev union next.freeVariables)
 
     override def constantFunctions: Set[ConstantFunctionLabel] = args.foldLeft(Set.empty[ConstantFunctionLabel])((prev, next) => prev union next.constantFunctions)
@@ -54,7 +54,7 @@ private[fol] trait FormulaDefinitions extends FormulaLabelDefinitions with TermD
   /**
    * The formula counterpart of [[BinderLabel]].
    */
-  final case class BinderFormula(label: BinderLabel, bound: VariableLabel, inner: Formula) extends Formula {
+  sealed case class BinderFormula(label: BinderLabel, bound: VariableLabel, inner: Formula) extends Formula {
     override def freeVariables: Set[VariableLabel] = inner.freeVariables - bound
 
     override def constantFunctions: Set[ConstantFunctionLabel] = inner.constantFunctions
diff --git a/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala b/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
index 28b6c869..b1d14331 100644
--- a/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
+++ b/lisa-kernel/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
@@ -41,7 +41,7 @@ private[fol] trait FormulaLabelDefinitions extends CommonDefinitions {
   /**
    * A standard predicate symbol. Typical example are equality (=) and membership (∈)
    */
-  final case class ConstantPredicateLabel(id: String, arity: Int) extends PredicateLabel with ConstantLabel
+  sealed case class ConstantPredicateLabel(id: String, arity: Int) extends PredicateLabel with ConstantLabel
 
   /**
    * The equality symbol (=) for first order logic.
@@ -51,7 +51,7 @@ private[fol] trait FormulaLabelDefinitions extends CommonDefinitions {
   /**
    * A predicate symbol that can be instantiated with any formula.
    */
-  final case class SchematicPredicateLabel(id: String, arity: Int) extends PredicateLabel
+  sealed case class SchematicPredicateLabel(id: String, arity: Int) extends PredicateLabel
 
   /**
    * The label for a connector, namely a function taking a fixed number of formulas and returning another formula.
diff --git a/lisa-kernel/src/main/scala/lisa/kernel/fol/TermDefinitions.scala b/lisa-kernel/src/main/scala/lisa/kernel/fol/TermDefinitions.scala
index 3a01b5ea..e98ca824 100644
--- a/lisa-kernel/src/main/scala/lisa/kernel/fol/TermDefinitions.scala
+++ b/lisa-kernel/src/main/scala/lisa/kernel/fol/TermDefinitions.scala
@@ -26,7 +26,7 @@ private[fol] trait TermDefinitions extends TermLabelDefinitions {
    *
    * @param label The label of the variable.
    */
-  final case class VariableTerm(label: VariableLabel) extends Term {
+  sealed case class VariableTerm(label: VariableLabel) extends Term {
     override def freeVariables: Set[VariableLabel] = Set(label)
 
     override def constantFunctions: Set[ConstantFunctionLabel] = Set.empty
@@ -39,7 +39,7 @@ private[fol] trait TermDefinitions extends TermLabelDefinitions {
    * @param label The label of the node
    * @param args  children of the node. The number of argument must be equal to the arity of the function.
    */
-  final case class FunctionTerm(label: FunctionLabel, args: Seq[Term]) extends Term {
+  sealed case class FunctionTerm(label: FunctionLabel, args: Seq[Term]) extends Term {
     require(label.arity == args.size)
 
     override def freeVariables: Set[VariableLabel] = args.foldLeft(Set.empty[VariableLabel])((prev, next) => prev union next.freeVariables)
diff --git a/lisa-kernel/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala b/lisa-kernel/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
index 4d36c247..c2691946 100644
--- a/lisa-kernel/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
+++ b/lisa-kernel/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
@@ -34,7 +34,7 @@ private[fol] trait TermLabelDefinitions extends CommonDefinitions {
    *
    * @param id The name of the variable, for example "x" or "y".
    */
-  final case class VariableLabel(id: String) extends TermLabel {
+  sealed case class VariableLabel(id: String) extends TermLabel {
     val name: String = id
   }
 
@@ -54,7 +54,7 @@ private[fol] trait TermLabelDefinitions extends CommonDefinitions {
    * @param id    The name of the function symbol.
    * @param arity The arity of the function symbol. A function symbol of arity 0 is a constant
    */
-  final case class ConstantFunctionLabel(id: String, arity: Int) extends FunctionLabel with ConstantLabel
+  sealed case class ConstantFunctionLabel(id: String, arity: Int) extends FunctionLabel with ConstantLabel
 
   /**
    * A schematic function symbol that can be substituted.
@@ -62,7 +62,7 @@ private[fol] trait TermLabelDefinitions extends CommonDefinitions {
    * @param id    The name of the function symbol.
    * @param arity The arity of the function symbol. A function symbol of arity 0 is a constant
    */
-  final case class SchematicFunctionLabel(id: String, arity: Int) extends FunctionLabel
+  sealed case class SchematicFunctionLabel(id: String, arity: Int) extends FunctionLabel
 
   /**
    * A function returning true if and only if the two symbols are considered "the same".
diff --git a/lisa-kernel/src/main/scala/lisa/kernel/proof/RunningTheory.scala b/lisa-kernel/src/main/scala/lisa/kernel/proof/RunningTheory.scala
index 7d15e8e5..ce544cf2 100644
--- a/lisa-kernel/src/main/scala/lisa/kernel/proof/RunningTheory.scala
+++ b/lisa-kernel/src/main/scala/lisa/kernel/proof/RunningTheory.scala
@@ -29,12 +29,12 @@ class RunningTheory {
   /**
    * A theorem encapsulate a sequent and assert that this sequent has been correctly proven and may be used safely in further proofs.
    */
-  final case class Theorem private[RunningTheory] (name: String, proposition: Sequent) extends Justification
+  sealed case class Theorem private[RunningTheory] (name: String, proposition: Sequent) extends Justification
 
   /**
    * An axiom is any formula that is assumed and considered true within the theory. It can freely be used later in any proof.
    */
-  final case class Axiom private[RunningTheory] (name: String, ax: Formula) extends Justification
+  sealed case class Axiom private[RunningTheory] (name: String, ax: Formula) extends Justification
 
   /**
    * A definition can be either a PredicateDefinition or a FunctionDefinition.
@@ -47,7 +47,7 @@ class RunningTheory {
    * @param label The name and arity of the new symbol
    * @param expression The formula, depending on terms, that define the symbol.
    */
-  final case class PredicateDefinition private[RunningTheory] (label: ConstantPredicateLabel, expression: LambdaTermFormula) extends Definition
+  sealed case class PredicateDefinition private[RunningTheory] (label: ConstantPredicateLabel, expression: LambdaTermFormula) extends Definition
 
   /**
    * Define a function symbol as the unique element that has some property. The existence and uniqueness
@@ -58,7 +58,7 @@ class RunningTheory {
    * @param out   The variable representing the result of the function in phi
    * @param expression   The formula, with term parameters, defining the function.
    */
-  final case class FunctionDefinition private[RunningTheory] (label: ConstantFunctionLabel, out: VariableLabel, expression: LambdaTermFormula) extends Definition
+  sealed case class FunctionDefinition private[RunningTheory] (label: ConstantFunctionLabel, out: VariableLabel, expression: LambdaTermFormula) extends Definition
 
   private[proof] val theoryAxioms: mMap[String, Axiom] = mMap.empty
   private[proof] val theorems: mMap[String, Theorem] = mMap.empty
diff --git a/lisa/src/main/scala/lisa/proven/Main.scala b/src/main/scala/lisa/proven/Main.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/Main.scala
rename to src/main/scala/lisa/proven/Main.scala
diff --git a/lisa/src/main/scala/lisa/proven/SetTheoryLibrary.scala b/src/main/scala/lisa/proven/SetTheoryLibrary.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/SetTheoryLibrary.scala
rename to src/main/scala/lisa/proven/SetTheoryLibrary.scala
diff --git a/lisa/src/main/scala/lisa/proven/mathematics/Mapping.scala b/src/main/scala/lisa/proven/mathematics/Mapping.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/mathematics/Mapping.scala
rename to src/main/scala/lisa/proven/mathematics/Mapping.scala
diff --git a/lisa/src/main/scala/lisa/proven/mathematics/SetTheory.scala b/src/main/scala/lisa/proven/mathematics/SetTheory.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/mathematics/SetTheory.scala
rename to src/main/scala/lisa/proven/mathematics/SetTheory.scala
diff --git a/lisa/src/main/scala/lisa/proven/tactics/Destructors.scala b/src/main/scala/lisa/proven/tactics/Destructors.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/tactics/Destructors.scala
rename to src/main/scala/lisa/proven/tactics/Destructors.scala
diff --git a/lisa/src/main/scala/lisa/proven/tactics/ProofTactics.scala b/src/main/scala/lisa/proven/tactics/ProofTactics.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/tactics/ProofTactics.scala
rename to src/main/scala/lisa/proven/tactics/ProofTactics.scala
diff --git a/lisa/src/main/scala/lisa/proven/tactics/SimplePropositionalSolver.scala b/src/main/scala/lisa/proven/tactics/SimplePropositionalSolver.scala
similarity index 100%
rename from lisa/src/main/scala/lisa/proven/tactics/SimplePropositionalSolver.scala
rename to src/main/scala/lisa/proven/tactics/SimplePropositionalSolver.scala
diff --git a/lisa/src/test/scala/lisa/proven/InitialProofsTests.scala b/src/test/scala/lisa/proven/InitialProofsTests.scala
similarity index 100%
rename from lisa/src/test/scala/lisa/proven/InitialProofsTests.scala
rename to src/test/scala/lisa/proven/InitialProofsTests.scala
diff --git a/lisa/src/test/scala/lisa/proven/SimpleProverTests.scala b/src/test/scala/lisa/proven/SimpleProverTests.scala
similarity index 100%
rename from lisa/src/test/scala/lisa/proven/SimpleProverTests.scala
rename to src/test/scala/lisa/proven/SimpleProverTests.scala
-- 
GitLab