LISA is a proof assistant based on first-order logic sequent calculus and set theory. To get started, check the Reference Manual.
LISA is developed and maintained by the Laboratory for Automated Reasoning and Analysis (LARA) at the EPFL.
For details regarding the design of LISA and techniques implemented here, you can check the following publications:
sbt
.run
in the sbt
interactive console and select a main class to run when prompted (try with
SetTheory.scala
first!). project lisa-examples
, and play around
with the examples in
lisa-examples/src/main/scala/Example.scala,
or create your own file. You can start your own LISA file with the following
minimal header:
object MyLisaFile extends lisa.Main {
// your proofs go here
}
The lisa-kernel
package contains the trusted code of LISA, in the sense that
all theorems and proofs pass through it to be considered correct. It only can
produce theorems and verify proof. Any bug or error in code written outside this
package should not possibly break soundness.
The kernel essentially contains two elements: formalisation of first-order logic, and formalisation of proofs through sequent calculus.
The lisa-utils
package contains a set of utilities to interact with the
kernel. Syntactic sugar, a parser and printer for proofs and formulas,
unification algorithms, among others. The package also contains LISA's DSL to
write proofs, tactics, and mathematical developments.
Most user-developed tactics, syntax, and auxiliary utilities go here.
The following commands can be used to perform different actions as configured in
the project. Each command ("command
") can be run within the sbt
console as
simply command
or in batch mode from a shell session in the project directory
with sbt command
or sbt "command; command; ..."
.
run
to execute a LISA file, prompting which file to runrunMain classPath
to run a specific main file at classPath
without prompt.
runMain lisa.mathematics.settheory.SetTheory
test
to compile and execute the test suiteassembly
to package LISA as a librarydoc
to generate the Scala documentationscalafix
to lint the whole projectscalafmt
to format the whole projectCopyright 2023 EPFL
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.