Re: Axiom musings...

Martin Baker <[email protected]> Mon, 16 Dec 2019 11:31:15 +0000
Newsgroups gmane.comp.mathematics.axiom.devel
Message-ID <[email protected]>
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