
Toward an exploratory medium for mathematics - oskarth
http://cognitivemedium.com/emm/emm.html
======
mockery
Are these videos of an functioning piece of software, or mockups? There are a
lot of interactions that are glossed over, and it's not obvious to me how this
software would function.

I'm also skeptical about the characterization of an exploration of the
properties of a single 2D matrix as "real mathematical work."

------
munin
this looks really cool!

I think it's weird that the author dings matlab and mathematica for being
unable to do counterfactual reasoning. matlab and mathematica are
computational tools, they don't do "reasoning" the way that say coq or other
proof assistants do. and proof assistants can do counterfactual reasoning, so
what's the deal? beyond that it would take a lot of work to encode these
graphical diagrams into coq I guess...

~~~
seanmcdirmid
I think he is arguing that they don't aid in counterfactual reasoning. They
provide no facilities to help you yourself discover contradictions. This isn't
about automating proofs, just helping you think through the problem.

~~~
seanmcdirmid
Bah, I totally wrote this wrong. What I really meant to say was that it is not
an automated system for doing a proof. It is a tool that helps you do
reasoning and thinking. Augmenting human intelligence rather than replacing
it.

~~~
munin
I think the proponents of proof assistants would say that the proof assistant
is also there to help you do reasoning and thinking.

~~~
seanmcdirmid
I think they would! But a proof assistant aides you by checking your abstract
thinking; you are still responsible for doing all the thinking yourself. This
kind of tool aides in reasoning via a concrete example that can be tweaked in
real time to see different sides of the problem.

~~~
catnaroek
> But a proof assistant aides you by checking your abstract thinking; you are
> still responsible for doing all the thinking yourself.

This isn't really true. Nowadays, Coq can automate much of the process of
coming up with a full proof - which is exactly what requires “abstract
thinking”. (Of course, you still need to identify “strategic lemmas”, but even
these lemmas can often be proven mostly automatically.) The downside is that
machine-generated proofs are often gibberish from the point of view of human
intelligibility, but that's okay if you're only interested in the truth of
what is being proven.

> This kind of tool aides in reasoning via a concrete example

Actually, going from a concrete example to a more general abstract concept
requires you to do the thinking yourself. At least if you want the result of
the generalization process to be valid.

~~~
seanmcdirmid
Surely Coq can fill in the wholes, but it is completely abstract; it doesn't
use concrete examples to do this, and anyways, you really have to understand
what it is doing.

The point of this kind of work is that it augments your thinking by allowing
you to visualize and manipulate your concrete example. Before, you'd just have
pen and paper for that, with no assistance from the computer at all. The whole
formal kick really comes after you have enough intuition about the problem,
this comes before that and aides in the intuition accumulation process.

~~~
catnaroek
Why do I need an intuition when I can just manipulate formulas?

~~~
seanmcdirmid
Hey, isn't that it? Some people can just spend all their time in abstracting
thinking land, manipulating formulas without concrete examples providing any
context, because they have some amazing super power that many of us (maybe
most?) don't have.

Others need context. We need to see concrete examples of the problem, play
around with them, explore them, until our brains can "get" a generalization.

And in the end, maybe we all benefit from concrete context? When you are
manipulating formulas, do you impose a concrete example in your head to guide
that manipulation? Wouldn't it be great to get that out onto the computer
somehow?

~~~
catnaroek
I see two concerns being conflated here: (0) how to motivate the study of a
formal system, and (1) how to actually study the formal system.

To _motivate_ the study of a formal system, that is, to convince someone that
the system is _useful_ , obviosuly you need examples and applications. To a
non-mathematician like me, that motivation must come from outside mathematics,
e.g., how to design and write reliable programs that are easy to understand
and maintain.

But, once you have decided that a formal system is useful, you really need to
understand it in its own terms. You seem to view formulas as “too abstract”,
and in need of “explanation” (not just motivation) in terms of something “more
concrete”. I don't see why. By itself, a formula is nothing but a well-formed
syntax tree, that is, a data structure just like lists or arrays (though
usually with more complex internal invariants). Do you think lists and arrays
are in need of “explanation”? The rules for manipulating formulas are
themselves also fairly mechanical and concrete, just like the rules for
manipulating lists and arrays.

Or am I missing something?

~~~
seanmcdirmid
This isn't about motivation. Its not even about study, rather how do you go
about doing formal reasoning at all? Prove X has property P, what is even the
first step? How do we get to the second step, and so on? Doing a proof is not
a mechanical process, there isn't an algorithm for deciding what to do next to
reach your goal!

Programming is a great example of this. Those lists and arrays don't appear
out of nowhere. Someone has to write the code, how do they write the code? Why
use a list to store those elements? Programs are generalized to operate on a
wide variety of inputs to create a wide variety of outputs, but when you are
writing code, you are thinking about just a few examples of those, you imagine
them in your head and they guide the code you write. But perhaps the computer
could help there as well.

~~~
catnaroek
> This isn't about motivation. Its not even about study, rather how do you go
> about doing formal reasoning at all? Prove X has property P, what is even
> the first step? How do we get to the second step, and so on? Doing a proof
> is not a mechanical process, there isn't an algorithm for deciding what to
> do next to reach your goal!

Yep, there's no general algorithm for coming up with proofs. Practice,
experience and good heuristics help, though. And if they don't, then you
redesign the formal system until they do.

> Programming is a great example of this. Those lists and arrays don't appear
> out of nowhere. Someone has to write the code, how do they write the code?

Same as above. Just replace “proofs” with “programs”, and “formal system” with
“programming language”.

> Why use a list to store those elements?

The desired invariants (see below) and complexity bounds for your code will
tell you what data structures might be more convenient than others.

> Programs are generalized to operate on a wide variety of inputs to create a
> wide variety of outputs, but when you are writing code, you are thinking
> about just a few examples of those, you imagine them in your head and they
> guide the code you write.

I can't speak for others, but I really don't think that way. When I'm
designing an algorithm, or when I'm trying to understand someone else's
design, what matters to me first and foremost is its _invariants_ \- what the
program _preserves_ , even though the process' state is changing. Only if I
can't see what the invariants are, then I might use some examples to generate
plausible candidates, but the job isn't done until I have found and confirmed
the invariants themselves. In other words, I don't conflate “works for these
few examples” with “works in general”.

~~~
seanmcdirmid
> Practice, experience and good heuristics help, though. And if they don't,
> then you redesign the formal system until they do.

I'm not sure anyone really understands the cognitive processes behind doing
math. But maybe?

> The desired invariants (see below) and complexity bounds for your code will
> tell you what data structures might be more convenient than others.

I rarely write code where I even need to think about complexity bounds! I'd be
surprised if that was a dominating concern for even a significant fraction of
programmers (systems HPC programmers, for sure, but...UI programmers?).

> Only if I can't see what the invariants are, then I might use some examples
> to generate plausible candidates, but the job isn't done until I have found
> and confirmed the invariants themselves. In other words, I don't conflate
> “works for these few examples” with “works in general”.

We don't. But you need to start somewhere. Don't underestimate the value of a
few good examples in the problem solving process.

~~~
catnaroek
> I'm not sure anyone really understands the cognitive processes behind doing
> math.

As long as we all play by the rules of the symbolic game, I don't really need
to understand what's going on inside anyone else's (or even my own) head.

> I rarely write code where I even need to think about complexity bounds! I'd
> be surprised if that was a dominating concern for even a significant
> fraction of programmers (systems HPC programmers, for sure, but...UI
> programmers?).

Invariants still remain, e.g., “the textboxes Red, Green, Blue, Hue,
Saturation and Brightness must contain each a number between 0 and 255
inclusive; additionally, these numbers must satisfy the following equations
(...)”.

> We don't. But you need to start somewhere. Don't underestimate the value of
> a few good examples in the problem solving process.

Oh, sure, examples can be a useful tool for finding the general rule, as I
mentioned in my previous comment. But they don't replace the general rule.

------
transfire
Can anyone summarize?

~~~
fnovd
Many useful mathematical proofs can be derived based on proving the
impossibility of a contradictory assumption. I can try to disprove the
triangle angle sum theorem (that the sum of the three angles in any triangle
is 180) by attempting to draw a triangle that contradicts that assumption. I
may begin by drawing two 90 degree angles. In doing so, I instead demonstrate
that the 2 unconnected lines will never intersect in 2D space, and thus the
figure cannot be triangle. This is a useful step along the way of formally
proving that the sum of angles in any triangle is 180. My attempt at drawing
an impossible figure can help visualize exactly why such a figure is
impossible.

This suspension of constraint enforcement is easy on pen and paper. I can
attempt to draw whatever I wish. However, there is no easy way to experiment
in this way with modern mathematical software. How do you formalize a proof by
contradiction in software that has these constraints pre-programmed?

~~~
catnaroek
That the internal angles of a triangle on the Euclidean plane add up to pi,
can be derived directly, without resorting to proof by contradiction. (Hint:
Draw a parallel line to one of the edges, which passes through the vertex not
contained in that edge.)

Also, a proof by contradiction of an equality is unsatisfactory in
constructive mathematics, because, in general, you can't go from “that A and B
are not equal implies a contradiction” to “A and B are equal”. (This would
require equality to be decidable.)

------
conceit
The way the term medium is used here really bothers me. For one, because I was
taught that a medium is a _oneway_ communication channel. Further more,
because the plural media has an idiomatic meaning in English, that is the
publishing industry. I find it Ironic that it's in the name of the site, even,
although I should judge the content by its merit. I don't because it's tl;dr
and I got lost around the explanation of SVD (a link to wikipedia would be
enough).

~~~
theoh
I don't know who erroneously taught you that a medium is always a one-way
channel.

In the creative sense, it's a cliche to talk about exploring something
"through the medium of dance" or to refer to painting or drawing as a medium.
The blackboard is a traditional mathematical medium.

