How can I semi-automate mathematical proofs using Mathematica or other tools?

  • Thread starter jordi
  • Start date
  • Tags
    Proofs
In summary, the author is looking for a method to semi-automate mathematical proofs. Precisely, he would like that, if he defines a function f, Mathematica would automatically generate the proof for him. Unfortunately, he can not find a way to do this in Mathematica, but he is able to do it by using either of the Module or Block functions in Math'ca.
  • #1
jordi
197
14
I am looking for a method to semi-automate mathematical proofs. Precisely, what I would like is that, if for example I define (sorry, I have never used latex in this forum, and I still do not know how to do it yet):

f[A] := {y|[tex]\exists[/tex]x[tex]\in[/tex]A (y=f(x))}

then, if I have

f[A[tex]\cup[/tex]B]

what I would like is to make a call to the definition above (something like F[f=f,A=A[tex]\cup[/tex]B]) and that the math editor (maybe Mathematica) just writes

f[A[tex]\cup[/tex]B] = {y|[tex]\exists[/tex]x[tex]\in[/tex]A[tex]\cup[/tex]B (y=f(x))}

where the = has a link (hyperlink) to the initial definition (ie, if I click on it, I go to the original definition).

How can I do that?

1. Is there in Mathematica functionality for that?
2. Is there a package that does that, not Mathematica?
3. If not, can I program in a programming language, using latex symbols?
 
Physics news on Phys.org
  • #2
You should be able to do this by using either of the Module or Block functions in Math'ca.
 
  • #3
EnumaElish said:
You should be able to do this by using either of the Module or Block functions in Math'ca.

Let us say I want to proof something very simple, eg, A U (B U C) = (A U B) U C.

If I define:

UnionToSet=Function[{A,B},body={x|x[tex]\in[/tex]A||x[tex]\in[/tex]B}]

I start the proof with:

UnionToSet[C,UnionToSet[F,G]]

that gives me:

{x|x[tex]\in[/tex]C||x[tex]\in[/tex]{x|x[tex]\in[/tex]F||x[tex]\in[/tex]G}}

Now I need to apply the axiom:

x[tex]\in[/tex]{x|P(x)} iff P(x)

I find then a problem:

In my definition of UnionToSet, the body is only a string of characters. What I would like is to be able to define an object, Set(P), which is a functional on the set of “acceptable logic statements”, that is equivalent to {x|P(x)}. This object should have methods, like Belongs(x,Set(P)), and Property(x,Set(P))=P(x).

I have googled a bit, but I cannot find anything like this. It is strange, because I think a mathematical package should have an object for defining sets, for belonging, for logic statements... and I think quite natural that mathematicians working with Mathematica would want to state their axioms and let the package to automate the proofs.

Note: for the record, the above proof should be ( means belongs to)[tex]\in[/tex]

CU(FUG)={x|x[tex]\in[/tex]C||x[tex]\in[/tex]FUG}}={x|x[tex]\in[/tex]C||x[tex]\in[/tex]{y|y[tex]\in[/tex]F||y[tex]\in[/tex]G}} = {x|x[tex]\in[/tex]C||(x[tex]\in[/tex]F||x[tex]\in[/tex]G)} = {x|(x[tex]\in[/tex]C||x[tex]\in[/tex]F)||x[tex]\in[/tex]G} = {x|x[tex]\in[/tex]{y|y[tex]\in[/tex]C||y[tex]\in[/tex]F}||x[tex]\in[/tex]G}={x|x[tex]\in[/tex]CUF||x[tex]\in[/tex]G}}=(CUF)UG.

What I would like is that every time I write “=” and I refer to it a given theorem/axiom/whatever, the program automatically applies this theorem/axiom/whatever and writes the corresponding right hand side.

CU(FUG)=Set(P = *[tex]\in[/tex]C||*[tex]\in[/tex]FUG)=Set(P = *[tex]\in[/tex]C||*[tex]\in[/tex]Set(P=**[tex]\in[/tex]F||**[tex]\in[/tex]G ))=Set(P = *[tex]\in[/tex]C||(*[tex]\in[/tex]F||*[tex]\in[/tex]G ))
=Set(P = (*[tex]\in[/tex]C||*[tex]\in[/tex]F)||*[tex]\in[/tex]G )=Set(P = (*[tex]\in[/tex]Set(P=**[tex]\in[/tex]C ||**[tex]\in[/tex]F ))||*[tex]\in[/tex]G)=Set(P = *[tex]\in[/tex]CUF||*[tex]\in[/tex]G )=(CUF)UG.
 
Last edited:
  • #4
EnumaElish said:
You should be able to do this by using either of the Module or Block functions in Math'ca.

I have seen that there is a package in Mathematica called SetTheory.m. Apparently, it automates the proofs in set theory and logic. Has anybody used it? Is it possible to use it for proofs not only in set theory and logic, but in all other areas of mathematics?
 

1. What is semi-automation in the context of proofs?

Semi-automation in the context of proofs refers to the use of both human reasoning and computer algorithms to assist in the process of proving a mathematical or logical statement. It combines the efficiency of automation with the creativity and intuition of human reasoning to aid in the completion of complex proofs.

2. What are the benefits of semi-automation in proofs?

Semi-automation can significantly speed up the process of proving a statement, as computers can quickly perform tedious calculations and search for patterns. It also allows for the elimination of human error and can help in the discovery of new and innovative proof techniques.

3. How does semi-automation work in practice?

Semi-automation in proofs typically involves the use of proof assistants or interactive theorem provers. These are computer programs that assist in the construction of proofs by providing automated reasoning and verification tools. They allow users to input axioms, definitions, and logical rules, and use them to construct a proof step by step.

4. What are some limitations of semi-automation in proofs?

One limitation of semi-automation is that it is only effective for statements that can be expressed in a formal language and have well-defined axioms and rules. It may also require a significant amount of time and effort to set up and learn how to use a proof assistant, especially for complex proofs.

5. How can one improve their skills in semi-automating proofs?

To improve skills in semi-automating proofs, one can practice using proof assistants and interactive theorem provers on simpler statements before moving on to more complex ones. It can also be helpful to study and understand different proof techniques and strategies, as well as the underlying logic and rules of the formal language being used.

Similar threads

  • Set Theory, Logic, Probability, Statistics
Replies
11
Views
496
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
1K
  • General Math
Replies
13
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
1K
Replies
2
Views
1K
Replies
3
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
3
Views
6K
Replies
13
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
3
Views
3K
Back
Top