A New Coq Formalisation of Classical First-Order Logic with Proofs of the Soundness and Completeness Theorems.
-
How to build
-
Overview of files
-
References
-
Install opam.
-
Open this repository in your terminal.
-
Type the following script in the terminal:
opam switch create . ocaml.5.1.1
eval $(opam env)
opam pin add coq 8.18.0 -y
coq_makefile -f _CoqProject -o Makefile
make -j4 -k
@HilbertCalculus_sound
: forall (L : language) (Gamma : ensemble (frm L)) (C : frm L),
Gamma ⊢ C -> Gamma ⊨ C
Axioms:
classic : forall P : Prop, P \/ ~ P
@HilbertCalculus_complete
: forall L : language,
isCountable (function_symbols L) ->
isCountable (constant_symbols L) ->
isCountable (relation_symbols L) ->
forall (X : ensemble (frm L)) (b : frm L), X ⊨ b -> X ⊢ b
Axioms:
classic : forall P : Prop, P \/ ~ P
Vector.vreplacesCoq.Vectors.Vector.
Index.vaccumulates all source code and checks for consistency.
-
BasicFol.vcontains basic definitions of first-order logic. -
BasicFol2.vcontains extra definitions of first-order logic. -
ClassicalFol.vformalises the meta-theory on first-order logic, using the axiomclassic : forall P : Prop, P \/ ~ P. -
HilbertFol.vcontains basic facts about a Hilbert calculus for first-order logic. -
HilbertFol2.vcontains advanced facts about the Hilbert calculus for first-order logic.
-
BooleanAlgebra.vformalises a basic theory on Boolean algebras. -
ThN.vcontains basic facts about the natural numbers.
-
ClassicalFacts.vcontains facts aboutCIC + (classic : forall P : Prop, P \/ ~ P). -
ConstructiveFacts.vcontains facts aboutCIC. -
Notations.vreserves all notations to avoid the conflict. -
SfLib.vis a copy ofsnu-sf/sflib.v. -
Prelude.vis the prelude of this repository.