aboutsummaryrefslogtreecommitdiffstats
path: root/journal/26feb2009.html
blob: 2aee674666e660491524959c916a8d1b29c8ee1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>bnewbold thesis</title></head>
<body style="margin: 25px; font-family: helvetica;">
<h1 style="border-bottom: 2px solid;">
Journal: Feb 26, 2009</h1>
<i>Bryan Newbold, <a href="mailto:bnewbold@mit.edu">bnewbold@mit.edu</a></i><br />
<i><a href="http://web.mit.edu/bnewbold/thesis/">
http://web.mit.edu/bnewbold/thesis/</a></i>
<br /><p />
<!-- ================================================================ -->
<!-- ================================================================ -->

I've started writing some things up, look in the <a href="../draft/">draft</a>
folder. Very rough, just putting down ideas to see what structure emerges.

<h3>Type Hierarchies</h3>
The <b>sage</b> math rough documentation on coercion and arithmetic is at 
<a href="http://www.sagemath.org/doc/prog/node22.html">
http://www.sagemath.org/doc/prog/node22.html</a>. It mostly uses the python
object system with a variety of Fields to handle arbitrary precision numerical
data (RealField and ComplexField can be specified by precision).
<p />
<b>AXIOM</b> has great graphs of their huge algebraic hierarchy (warning: large 
slow svg files!): <a href="http://axiom-developer.org/axiom-website/dotabb.html">
abreviated category and domain</a>, 
<a href="http://axiom-developer.org/axiom-website/hp.svg">everything?</a>.
<br/>
Axiom uses strict type checking (everything gets compiled down?); every type is
a category which allows for checking of properties and mathematical
correctness. The interpreter guesses what type/category user input should be.
There is a good overview <a
href="http://axiom-developer.org/axiom-website/hyperdoc/axbook/section-0.2.xhtml">here</a>.
To paraphrase: every object is of a single type called it's domain ("domain of
computation", eg "String", "Float". Domains themselves have a type called a
Category (disclaimer: I don't know anything about category theory). The
Categories for hierarchies ("directed acyclic graphs"), eg:

<pre>
SetCategory +---- Ring       ---- IntegralDomain ---- Field
            |
            +---- Finite     ---+
            |                    \
            +---- OrderedSet -----+ OrderedFinite
</pre>

Packages are special domains which just have associated polymorphic operators
(so they are generic on inputs?).
<br />From the documentation:
"Roman numerals are also available for those special occasions."
<br />Interesting stuff! The main book explains a lot about how types are 
coerced together for operations etc.

<p />
<b>Singular</b> has a list of types
<a href="http://www.singular.uni-kl.de/Manual/latest/sing_67.htm#SEC107">here
</a>; it includes:
bigint      def     ideal       int     intmat      intvec      link
list        map     matrix     module     number     package        poly
proc       qring      resolution     ring       string     vector.

<p />
<b>Cadabra</b> is an interactive C++ system designed specifically for tensor
manipulation in physics (usually HEP?). It describes some of it's important
features as:
<ul>
<li />Built-in understanding of dummy indices and dummy symbols, including
their automatic relabelling when necessary. 
<li />Powerful algorithms for canonicalisation of objects with index
symmetries, both mono-term and multi-term.  
<li />A new way to deal with products of non-commuting objects, enabling a
notation which is identical to standard physicist's notation (i.e. no need for
special non- commuting product operators).
<li />A flexible way to associate meaning ("type information") to tensors by
attaching them to "properties".  
</ul>

<p />
With respect to some sort of absolute mathematical type hierarchy, one of my
favorite papers by Max Tegmark ("The Mathematical Universe"):
<br />
<img src="26feb2009-tegmark-toe.gif" />

<h3>Tools Needed</h3>
Basic multivariable calculus tools to be extended for differential geometry:
<dl>
 <dt />integral
 <dt />derivative
 <dt />partial derivative
 <dt />curl
 <dt />divergence
 <dt />taylor expansion
</dl>

Eg, <code>(taylor function variable point number)</code> would give a list
of the first *number* terms of the taylor expansion of *function* by
*variable* around *point*.

<br /><br /> 
<a href="19feb2009.html"><i>(previous entry)</i></a> - 
<a href="28feb2009.html"><i>(next entry)</i></a>

<!-- ================================================================ -->
<!-- ================================================================ -->
</body>
</html>