axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Axiom musings...


From: Martin Baker
Subject: Re: Axiom musings...
Date: Mon, 16 Dec 2019 11:31:15 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1

Tim,

Would this also be compatible with 'propositions as types' as in Idris and various proof assistants? That is, could you have both Curry–Howard and Carette-Farmer?

I ask this because types (and constructors for types) could also be inherited by categories in the way you describe. So an equation (axiom or identity) like a=a+0 has a constructor, Refl, if true which can be inherited.

Or do you see computer algebra/deduction/proof programs forking into constructive or axiomatic approaches?

Martin

On 16/12/2019 00:52, Tim Daly wrote:
Progress in happening on the new Sane Axiom compiler.

Recently I've been musing about methods to insert axioms
into categories so they could be inherited like signatures.
At the moment I've been thinking about adding axioms in
the same way that signatures are written, adding them to
the appropriate categories.

But this is an interesting design question.

Axiom already has a mechanism for inheriting signatures
from categories. That is, we can bet a plus signature from,
say, the Integer category.

Suppose we follow the same pattern. Currently Axiom
inherits certain so-called "attributes", such as ApproximateAttribute,
which implies that the results are only approximate.

We could adapt the same mechnaism to inherit the Transitive
property by defining it in its own category. In fact, if we
follow Carette and Farmer's "tiny theories" architecture,
where each property has its own inheritable category,
we can "mix and match" the axioms at will.

An "axiom" category would also export a function. This function
would essentially be a "tactic" used in a proof. It would modify
the proof step by applying the function to the step.

Theorems would have the same structure.

This allows theorems to be constructed at run time (since
Axiom supports "First Class Dynamic Types".

In addition, this design can be "pushed down" into the Spad
language so that Spad statements (e.g. assignment) had
proof-related properties. A range such as [1..10] would
provide explicit bounds in a proof "by language definition".
Defining the logical properties of language statements in
this way would make it easier to construct proofs since the
invariants would be partially constructed already.

This design merges the computer algebra inheritance
structure with the proof of algorithms structure, all under
the same mechanism.

Tim



reply via email to

[Prev in Thread] Current Thread [Next in Thread]