This tech will be released this year as part of the Logic Lab with a monograph
of around 100 pages to go in the coffee and donut report Shen series. It enables
the formal verification of any Shen program and is based on an axiomatic semantics
for KLambda which translates Klambda into a second-order logic LKL.
Addition over natural numbers is defined as
(define add
0 N -> N
M N -> (succ (add (pred M) N)))
A formal proof of the associativity of this addition function opens
=========================
Step 0 [1]
?- [all x
[all y
[all z
[
[add x
[add y z]] =
[add
[add x y] z]]]]]
> mathind (introduce math'l induction as an axiom)
and ends
Step 117 [1]
?- [
[add tm0
[add tm1 tm2]] =
[add
[add tm0 tm1] tm2]]
1. [
[add tm0
[add tm1 tm2]] =
[add
[add tm0 tm1] tm2]]
> hyp
true : boolean
Note after step 3 the proof is first-order.
I'm going to connect this system to Prover9 - a powerful system for first-order logic.
99% of the proofs in LKL are first-order after induction is performed so great savings are
possible.
Anybody interested in testing this out when done can reply here.
Mark