Free-Form Calculations

One way to use AutoMathic is by doing free-form calculations.  Free-form calculations use AutoMathic's Converse mode to translate English-like, conversational input into variables, expressions, and equations to be solved.  You tell it what you know, and ask it what you want to find out!  It accepts a wide range of expression, letting the user state problems almost naturally, using a restricted subset of the English language.  Using an extensive knowledgebase, it automatically pulls in whatever background knowledge is needed at the time.

With AutoMathic's built-in knowledge, some problems require less specification than others, so the user can definitely benefit by being familiar with what AutoMathic already knows.  When posing questions, it is best to treat AutoMathic as a smart (but not very intelligent) assistant that has a lot of mathematical knowledge, but doesn't have much common-sense about the "real world".  For example, it understands "average speed", "distance", and "time", but does not know about planes, trains, and automobiles!

Converse Mode

You can switch to Converse mode at any time by tapping the "Converse" button at the top of the screen.

You can toggle between Converse mode and Command mode freely, but be aware that Converse-mode input and Command-mode input are quite different and usually not compatible!

User Interface

When in Converse mode, the "Converse" button is highlighted, and the Input line's prompt is "Converse here..." instead of "Command here...".

Some universal commands that are applicable to Converse mode as well as Command mode are always available:

Element Description
List button Show the equations and defined variables
Info button Show unsolved equations and their unknowns
Detail button Set the level of equation-solving detail to show
Output button Select 1D or 2D style for math output notation
File... button Access the File Operations menu

Getting Started

When you first launch AutoMathic, you will see the main prompt:

So, what's your problem?

> _


What Can I Say?

At the prompt, you are free to respond in any number of ways.  Whatever you input will be translated by AutoMathic and interpreted as belonging to one or more of the following categories:

Request for Calculation

A Request for Calculation could be as simple as "1+1" or as complicated as "Convert Mach 5 into units meters per second".  In general, requests for calculation can be:

AutoMathic keeps track of requests and responds to them as soon as it has enough information to do so.  If no additional information is needed, it will answer immediately.  If the request has any outstanding unknowns, it will be stored and (hopefully) answered later.

Question  

A Question is really just a Request for Calculation that is written to sound like a normal, English question, usually using a form of the verb "to be":

However, AutoMathic does NOT handle "yes or no" questions, so it cannot answer about the truth or falsity of a logical statement. (e.g.  "Is the mass 5 unit kilograms?", "Is the width less than half of the length?")

Statement of Fact

Most statements of fact will come from using a verb phrase based on "to be" such as "is", "are", "was", "would usually have been", etc.  Factual statements become complete equations:

AutoMathic also handles many types of complex sentences that combine requests, questions, or statements of fact:

Kernel Command

Kernel commands are any of the commands accepted by AutoMathic's "Command Mode".  From "Converse Mode", kernel commands may be entered when the first character of your input is the "kernel escape" character, usually "!".

Back


What Does It Do?

During the translation, AutoMathic will do whatever is necessary to convert your input into a mathematical form.  It may break your input into multiple, independent pieces, or even introduce its own variables to solve for.

If AutoMathic does not think it understood what was entered, it will simply say, "I didn't understand" followed by the input in question.  You should read this as an opportunity to paraphrase the confusing input, and let it try again.

After it has finished translating, and possibly providing some immediate answers, AutoMathic will prompt for additional input:

Anything else?

> _

At this point, you can further define the current problem, ask additional or follow-up questions, or answer "no" when you have nothing else to add.  If you answer "no" and there are any unanswered questions, AutoMathic may search its library of mathematical knowledge to find any information that would be useful in getting answers.

If there are still unanswered questions, AutoMathic may try to solve the problem indirectly by resorting to more drastic measures such as the following:

If, after all that, there are still unanswered questions, AutoMathic may ask for more information one last time before finally giving up and listing the things it could not find.

Back


A Complete Example

To make this process more concrete, here is a transcript of a complete session that demonstrates many of the situations described above:

So, what's your problem?

> What percentage of a cost are its taxes?

   Let 'P' stand for "PERCENTAGE"

   (Find P)

   Let 'C' stand for "COST"

   Let 'T' stand for "TAXES"

   So...
             C P    
             --- = T
             100    


Anything else?

> No.

 I know that COST IS PRICE PLUS TAX
 I know that TAXES ARE 8.25% OF THE PRICE

   Let 'p' stand for "PRICE"

   So...
               C = T + p


   So...
                   8.25 p
               T = ------
                    100  


   Hypothetically...

       C = 1

 * Automatic substitution of 'p' using T=8.25p/100...

   Solving for p:

                   8.25 p
               T = ------
                    100  

          8.25 p    
          ------ = T
           100      

            8.25    
          p ---- = T
            100     

          8.25 p = 100 T

        p (8.25) = 100 T

                   100 T
               p = -----
                   8.25


   Substituting (100T/8.25) for 'p' in C=T+p...

                   100 T    
               C = ----- + T
                   8.25     


   Substitution leaves C=100T/8.25+T

   Eliminate 'p'?  y/[n]: n


 * 'p' not eliminated.

   Solving for T:

                   100 T    
               C = ----- + T
                   8.25     

       100 T        
       ----- + T = C
       8.25         

     /100     \     
  T ( ---- + 1 ) = C
     \8.25    /     

                      C    
               T = --------
                       100
                   1 + ----
                       8.25

       T = 0.0762124711316397 (or 33 / 433)

                   100 T
               p = -----
                   8.25

       p = 0.92378752886836 (or 400 / 433)

   Solving for P:

             C P    
             --- = T
             100    

              C     
           P --- = T
             100    

             C P = 100 T

             P C = 100 T

                   100 T
               P = -----
                     C  

       P = 7.62124711316397

 * No more automatic substitutions found.

   7.62124711316397 is THE PERCENTAGE.

Anything else?

> If the cost were 24.99, how much less than the price would the taxes be?

               C = 24.99

       C = 24.99

 Undefining 'P' ...

 Undefining 'T' ...

 Undefining 'p' ...

   Solving for T:

                   100 T    
               C = ----- + T
                   8.25     

       100 T        
       ----- + T = C
       8.25         

     /100     \     
  T ( ---- + 1 ) = C
     \8.25    /     

                      C    
               T = --------
                       100
                   1 + ----
                       8.25

       T = 1.90454965357968

                   100 T
               p = -----
                   8.25

       p = 23.0854503464203

   Solving for P:

             C P    
             --- = T
             100    

              C     
           P --- = T
             100    

             C P = 100 T

             P C = 100 T

                   100 T
               P = -----
                     C  

       P = 7.62124711316397

   Let 'A' stand for "ANSWER"

   (Find A)

   So...
           p - A = T


   Solving for A:

           p - A = T

             - A = T - p

         A (- 1) = T - p

               A = p - T

       A = 21.1809006928406

   21.1809006928406 is THE ANSWER.

Anything else?

> !list

 (Eq. 1)
             C P    
             --- = T
             100    

 (Eq. 2)
                   100 T    
               C = ----- + T
                   8.25     

 (Eq. 3)
                   100 T
               p = -----
                   8.25

 (Eq. 4)
           p - A = T


   Where 'P' stands for PERCENTAGE
   Where 'C' stands for COST
   Where 'T' stands for TAXES
   Where 'p' stands for PRICE
   Where 'A' stands for ANSWER

       C = 24.99
       T = 1.90454965357968
       p = 23.0854503464203
       P = 7.62124711316397
       A = 21.1809006928406

Anything else?

> No.

Back


Where to Go From Here

Most software documentation can do its job by listing program features and describing the exact use of those features.  There are several reasons why it is difficult to fully document the capabilities and limitations of AutoMathic's Converse mode:

This documentation only scratches the surface of the capabilities (and limitations) of this open-ended program.  That said, the following areas attempt to cover as much as possible:

The detailed topic discussions will take the approach of describing AutoMathic's conversational language from the bottom-up, covering:

Fluency in those building-blocks will allow the user to combine language elements into longer passages that allow expressing complete problems and creating a dialogue:

The examples throughout this guide are suitable for input into AutoMathic.  If the examples do not include output, feel free to enter them into AutoMathic to see how they are handled.

Finally, an extensive set of sample input is available that uses every word and idiom in AutoMathic's built-in vocabulary.  These examples were chosen to demonstrate not only AutoMathic's vocabulary, but also a wide range of its grammar and default knowledge.  By seeing examples of its language in an understandable context, the user should begin to learn AutoMathic's "dialect" of English in the same way they might learn a foreign language by being immersed in it.