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 styles 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?

> _

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:

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:

- algebraic expressions ("1+1", "Pi over two", etc.)
- noun-centric sentence fragments ("the speed of light", "half the mass", etc.)
- verb-centric commands ("solve for time", "find 2 x the diameter", etc.)

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":

- "How much less than e is Pi over two?"
- "What's the speed of light in terms of miles per hour?"

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?")

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:

- "Area is length times width."
- "The discount was usually 12% off of the price."

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

- "If the radius were 21 unit inches wide, how many unit meters long would the circumference be?"

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 "!".

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:

- Creating a hypothetical situation by using heuristics to choose a good variable and value
- Making an opportunistic substitution that would simplify the system of equations
- Giving a value to a free variable, one that's not part of any request
- Making any valid (but not necessarily simplifying) substitution

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.

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.

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:

- AutoMathic accepts a wide range of free-form input, in many ways simulating a limited level of natural-language understanding within the domain of algebra word problems.
- AutoMathic's users are already fluent in natural language, and may expect it to understand more than it is able to.
- AutoMathic has a few rules and conventions that must be used for certain concepts to be communicated correctly (e.g. the notion of "units").
- New capabilities have been uncovered by combining language in novel ways!
- New limitations have been uncovered by combining language in novel ways!

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:

- Overview of Features - summarizes major features and capabilities
- Table of Contents - provides a complete road-map of the detailed topic discussions
- Quick Reference - summarizes
the tips from the detailed topic discussions

- Lexicon and Sample Input - details the built-in vocabulary and provides usage examples
- Knowledgebase Summary - summarizes the built-in library of mathematical knowledge

- Input styles - Algebraic, Simple Translation, Natural Language, Mixed Mode
- Input categories - Requests, Questions, Statements, Kernel Commands

- Numbers - Literal and Written
- Units - Standalone Units, Units With Scalars, Units in Multiple Dimensions, and Unit Conversions
- Operators - "+", "-", "*", "/", and their synonyms

- Variables - and their relationship with nouns and noun phrases
- Expressions - and their relationship with Requests and Questions
- Equations - and their relationship with Statements and Questions

- Special
Input Forms - context-sensitive linguistic patterns and
their translations

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:

- Contradictions - How changing assumptions are handled
- Indirect References - How pronouns refer to other things
- Follow-up Questions - Ways of extending the 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.