spacing
[arxana.git] / org / arxana-redux.org
blobd3084f28d2426cde16cf3d6b19f48fde8e011769
1 #+TITLE:     Arxana Redux
2 #+AUTHOR:    Joe Corneli, Raymond Puzio
3 #+EMAIL:     contact@planetmath.org
4 #+DATE:      April 15, 2017 for Friday, 26 May, 2017 deadline
5 #+DESCRIPTION: Organizer for presentation on arxana and math text analysis at Oxford.
6 #+KEYWORDS: arxana, hypertext, inference anchoring
7 #+LANGUAGE: en
8 #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
9 #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc
10 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
11 #+EXPORT_SELECT_TAGS: export
12 #+EXPORT_EXCLUDE_TAGS: noexport
13 #+LINK_UP:
14 #+LINK_HOME:
15 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://metameso.org/~joe/solarized-css/build/solarized-light.css" />
16 #+BIBLIOGRAPHY: arxana-redux-refs plain
17 #+LATEX_HEADER: \usepackage[backend=bibtex,sorting=none]{biblatex}
18 #+LATEX_HEADER: \addbibresource{arxana-redux-refs}
19 #+STARTUP: showeverything
21 * Overview (Introduction)
23 For the Scheme 2017 workshop at the International Conference on
24 Functional Programming (/ICFP/) to take place at Oxford this Autumn,
25 we will be making a presentation on Arxana and math texts.
26 We plan to get some version of /Arxana/ working, then use it to mark
27 up some mathematical text along the lines of /IAT/ and then come up
28 with a demo which shows what such a /scholiumific representation/ is
29 good for.  We will draw on /CD/ theory to move /IAT/ style
30 representations into a computable form.
32 ** Glossary of keywords
34 - ICFP :: the International Conference on Functional Programming is an
35  annual academic conference in the field of computer science
36  sponsored by the ACM SIGPLAN, the Association for Computing
37  Machinery's Special Interest Group on programming languages.
38  Previous publications in the conference series touch on
39  things like /A functional programmer's guide to homotopy type theory/,
40  /Program synthesis: opportunities for the next decade/,
41  /Lem: reusable engineering of real-world semantics/ [Lem stands for "[[http://www.cl.cam.ac.uk/~pes20/lem/][Lightweight executable mathematics]]"],
42  /Functional programming with structured graphs/,
43  /Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages/,
44  /Using camlp4 for presenting dynamic mathematics on the web: DynaMoW, an OCaml language extension for the run-time generation of mathematical contents and their presentation on the web/,
45  /TeachScheme!: a checkpoint/,
46  /A functional I/O system or, fun for freshman kids/ and
47  /Commutative monads, diagrams and knots/
48  (i.e., a selection of papers from the proceedings over
49  the last 10 years that mention "mathematics" or
50  something similar; hopefully at least a few of them
51  are relevant).  We plan to submit to the
52  [[http://www.schemeworkshop.org/][Scheme and Functional Programming]] workshop,
53  though perhaps we might also want to have a look
54  at the [[http://functional-art.org/2017/cfp.html][Functional Art, Music, Modelling and Design]]
55  workshop in case it proves to be a better fit.
57 - IAT :: Inference Anchoring Theory was devised by Budzynska et
58      al \cite{budzynska2014model} to model the logical structure
59      of dialogical arguments.  This has since been adapted to
60      model mathematical arguments \cite{corneli2017qand}.  The
61      primary features of this adaptation are: (1) to introduce
62      more explicit relationships between pieces of mathematical
63      content; and (2) to advance a range of ``predicates'' that
64      relate mathematical propositions.  These predicates
65      describe inferential structure, judgements of validity or
66      usefulness, and reasoning tactics.
68 - scholium :: A scholium is a word for a marginal annotation or
69      scholarly, explanatory, remark. Corneli and Krowne proposed
70      a "scholia-based document model" \cite{corneli2005scholia}
71      for "commons-based peer production," that is, the kind of
72      collaborative online knowledge-building that happens on
73      sites like Wikipedia or in online forums
74      \cite{benkler2002coase}, or in other digital libraries
75      broadly construed \cite{krowne2003building}.  The proposal
76      is that online text resources grow ``by attaching.''  One
77      familiar class of examples is provided by revision control
78      systems, e.g., Git, which builds a network history of
79      changes to documents in a directed acyclic graph (DAG).
81 - Arxana :: Arxana is the name given to a series of prototype
82      implementations of the scholium-based document model with
83      an Emacs front-end.  Arxana is inspired in part by Ted
84      Nelson's Xanadu™ project, which was the first effort to
85      work with ``hypertext'' per se
86      \cite{nelson1981literary}. We have been specifically
87      interested in applications within mathematics, which has
88      given Arxana a unique flavour.  In particular, we propose
89      to use a scholium model to model the logic of proofs, not
90      just to represent mathematical texts for reading.
92 - CD :: Conceptual Dependence was introduced as a tool for
93      understanding natural language \cite{schank1972conceptual}. It
94      is also used to represent knowledge about actions
95      \cite{lytinen1992conceptual,sowa2008conceptual}.  The basis of
96      the theory is a set of /primitives/ which describe basic types
97      of actions such as "PTRANS — transfer of location" or "MBUILD
98      — construction of a thought or new information". Each
99      primitive comes with a set of /slots/ which accept objects of
100      certain types. By filling in the slots of a primitive, one
101      obtains the most elementary form of a /conceptual dependency
102      graph/. By combining such basic graphs, one can build up more
103      complicated CD graphs which describe actions in greater
104      detail.
106 ** Plan of the work
108 - Unlike a classical proof which consists of mathematical statements
109   and deductions, informal mathematical language is more general, and
110   the reasoning involved may be abductive, inductive, or heuristic.
112 - The presentation here will describe a strategy we have been
113   developing for representing mathematical dialogues and other
114   informal texts.
116 - A publication appearing in "Artificial Intelligence" this month
117   describes the high-level features of informal mathematics, and
118   helped inspire this project.
120 - Our latest efforts produce more detailed models mathematical
121   arguments.
123 - A graphical formalism and a corresponding prototype implementation
124   will be described.
126 - Applications include modelling collaborative proof dialogues and
127   discursive Q&A, as well as more traditional proofs.
129 - In our planned next steps we plan to bring in explicit
130   type-theoretic representations of mathematical objects within a
131   service-oriented architecture.
133 ** Statement of the research problem
135 The kinds of structures that are described by ``IAT+Content''
136 are still more or less graphs.  However, to work with
137 mathematics we need to be able to talk about /hypergraphs/.  For
138 example, if we say ``In September 1993, an error was found in
139 Wiles's proposed proof of Fermat's Last Theorem'' we would like
140 to point to the entire proposed proof as an object.  Similarly,
141 we would like to be able to draw a connection between this 1993
142 proposal with the corrected version published in 1995.
144 As we will see (*I should think! -JC*), even a proof itself is
145 more conveniently represented by hypergraph structures.  In
146 particular, some of the ``predicates'' are really generative
147 functions.  Indeed, some of them are ``heuristics'' which take
148 some work to specify.
150 Another feature of our representation is that hypergraphs can be
151 placed inside nodes and links of other hypergraphs.  This allows
152 one to organize ther representation by levels of generality.  For
153 instance, at the highest level, there might be the structure of
154 statements and proofs of theorems.  At thje next level, there
155 would be the individual propositions and the argument structure.
156 At the lowest level, there would be the grammatical structure of
157 the propositions.  Having a way of ``coarse-graining'' the
158 representation is important in order to have it be managable and
159 allow users to zoom in and out of the map to find the appropriate
160 level of detail.   This is related to Fare's categorical theory
161 of levels of a computer system [add citation].
163 One effect of this is that the markup we are devising is
164 ``progressive'' in the sense that we can describe heuristics with
165 nodes without fully formalising them.  A corresponding user feature is
166 to be able to fold things at many levels.  This is important because
167 the diagrams get quite large.
169 *** Proofs and prologues
171 In several of our examples, such as the Gowers problem and Artin's
172 book, on sees a structure in which a proof or calculation is preceded
173 by a kind of prologue in which the author describes motivation and
174 strategy.  Unlike the proof proper which consists of mathematical
175 statements and deductions, the language here is more general and
176 the reasoning may be abductive, inductive, or heuristic.
178 We would like to have a representation for these sorts of prologues
179 and indicate how they connect with the proof which they introduce
180 as well as the rest of the text.  A challenge here is that the
181 texts in question can allude and refer to all sorts of referents
182 including themselves at a high level of abstraction and require
183 a certain amount of common sense to be understood.
185 Since the issues that arise here are similar to those which arise in
186 undestanding and representing natural language stories, we should be
187 able to adapt techniques such as conceptual dependency relation or
188 goals and themes to a mathematical context.
190 *** Registers of mathematical discourse
192 The natural language which occurs in mathematical texts comes in
193 several different types.  Since these types differ in their
194 vocabulary, manner of reasoning, subject matter, and degree of
195 literality, it simplifies the study of the subject to distinguish
196 these types and examine them individually.
198 **** The formal register
199 One type of mathematical language is what we may call the
200 /formal register/.  This is the type of language which is used to state
201 mathematical propositions.  For example, "Every natural number can be
202 expressed as the sum of four squares." or "In every triangle, the sum
203 of the angles equals two right angles."  In this register, vocabulary
204 is interpreted in a certain technical fashion and the reasoning is
205 purely deductive.  Semantically, such statements are assumed to be
206 equivalent to symbolic expressions in formal logic (in whatever formal
207 system one is working).  For the examples, the following would be
208 formal equivalents:
209 \begin{align*}
210   &(\forall n \in \mathbb{N}) (\exists a, b, c, d \in \mathbb{N})
211      n = a^2 + b^2 + c^2 + d^2 \\
212   &(\forall \Delta abc \in \mathrm{triangle})
213      \angle abc + \angle bca + \angle cab = 2 * \perp
214 \end{align*}
215 Indeed, in mathematical writing, such statements in natural language
216 and their formal equivalents both appear and may even be combined
217 within a single sentence, such as "Whenever $(x, y)$ lies inside the
218 region, we have $x^2 + y^4 < 12$."
220 This register of discourse has been studied by de Bruijn, Ranta, Mohan
221 and others and there exist parsers which can translate between natural
222 language and formal expressions.  Once we have formal representations,
223 we can reason about them using tools from Frege and others.
225 While there is much work to be done towards developing a formal linguistic
226 theory of mathematics, at least some basic principles are understood and have
227 been illustrated with example programs so, for the purpose of this project,
228 we shall take this subject as given and allow ourselves to introduce
229 formal restatements of propositions without worrying about how the
230 translation might be accomplished.
232 **** The expository register
233 Another type of mathematical language is what we will call the
234 /expository register/.  This is the sublanguage which is used to
235 express how and why one is interested in a particular formal statement
236 and describe mathematical reasoning.  Examples of such language
237 include:
239 + It is easy to see that our theory is complete if we assume the
240   descending chain condition.
242 + A more elegant way of proving theorem 5 is by induction on the
243   degree; however, we chose to present the current proof because it
244   makes it clear that the result depends upon the factorizibility
245   condition.
247 + Is it possible to prove that any point and any line will do?
249 + Can we do this for $x+yx+y$? For $e$? Rationals with small denominator?
251 The expository register has several salient features which work together:
253 # Expanded a bit more in http://metameso.org/cgi-bin/current.pl/Two_years_later
254 # terms - put examples
256 - Mathematical content (Universe of discourse) :: The main focus of this type of discusses are mathematical objects and mathematical propositions (which may exist in analogy with physical objects or psychological states).  These are used to convey *narratives* of how one or more actors navigate their way through mathematical hyperreality.  Formal mathematics models the objects in this universe of discourse and their relationships, but the discourse itself is not necessarily formal.
258 - Metamathematical reasoning :: It is metamathematical, discussing not only with objects and propositions, but also inference and proofs.  For instance, in the first example *"It is easy to see that our theory is complete if we assume the
259   descending chain condition"* says something about the proof of a statement.  Likewise, it indicates types of proofs and proof strategies.  It is however,
260 not a purely formal statement.  It relies on the next feature:
262 - Heuristic value judgements :: Whereas the formal register only has deductive reasoning of the strictest sort, in the expository register we also have *inductive* and *abductive* reasoning as well as reasoning by analogy, heuristics, and looser forms of approximate and plausible reasoning.  Concomittantly, the truth judgements made go beyond the truth values of formal logic to vaguer assertions such as "this proof is elegant" or "this statement sounds likely to be false".  This is closer to what one has in non-mathetical discourse.  These sorts of assertions influence the choice of actions and strategies.
264 *** Related fields
266 In order to build a computational theory of the expository register,
267 we will draw upon several well-studied topics in AI which deal with
268 situations that have common features, namely the block world, board
269 games, and story comprehension.
271 | /Level/               | *Block World*     | *Board Games*         | *Story Comprehension* |
272 |-----------------------+-------------------+-----------------------+-----------------------|
273 | universe of discourse | blocks on a table | game pieces on board  | everyday life         |
274 | reasoning             | instructions      | rules & strategy      | analogy               |
275 | value                 | consistency?      | prediction of winning | costs and benefits    |
276 | role of disagreement  | none              | multiple strategies   | ethical dilemmas      |
278 In a mathematical setting, thespects are modelled in "IATC" or
279 "Inference Anchoring Theory + Content" \cite{martin2017bootstrapping,corneli2017towards}.
281 In a Lakatos setting disagreement is the primary engine that drives discovery.
283 ** Suitability of venue
285 As we will also see, it is not just incidental that our work is
286 implemented in LISP.  Actually, the kind of hypergraph programs
287 we use are a ``natural'' extension of the basic LISP data model.
289 Emacs (and Org mode) are suitable for interacting with other
290 programming languages and long-running processes, e.g., MAXIMA.
291 (Also see preiterature on heuristics in LISP from Lenat.)
293 *** What is on offer in this approach
295 Kinematics vs dynamics.
297 Purely formal logic written as graph subsitution - example.
299 One thing we have here is links that contain code.
301 Another thing hypergraphs give us is links to links - of course
302 we can also think about higher-dimensional versions of the same,
303 but links to link.
305 * The core language
307 Here we'll describe the structures coming from several different
308 places, e.g., Gabi, Lakatos, etc.
310 ** Content (=structure=)                                               :GRAY:
311 *** object $O$ is =used_in= proposition $P$
312 **** Example: ``The Caley graph of group \(G\)'' has sub-object $G$
313 *** proposition $Q$ is a =sub-proposition= of proposition $P$
314 **** Example: ``$P$ is difficult to prove'' has sub-proposition $P$
315 *** proposition $R$ is a =reformed= version of proposition $P$
316 **** Example: ``Every $x$ is a \(P\)'' might be reformed to ``Some $x$ is a \(P\)''
317 *** property $p$ is as the =extensional_set= of all objects with property $p$
318 **** Example: the set $\mathcal{P}$ of primes is the extension of the predicate $\mathit{prime}$.
319 *** $O$ =instantiates= some class $C$
320 **** Comment: This is not quite syntactic sugar for =has_property=!
321 If we have a class of items $C$ we want to be able say that $x$ is a
322 member of $C$.  In principle, we could write $x$ =has_property= $C$.
323 But I think there are cases where we would want to
324 distinguish between, e.g.,
325 $2$ =has_property= prime, and $prime(2)$ =instantiates=
326 $prime(x)$.  This =instantiates= operation is a natural extension of
327 backquote; so e.g., we could write the true statement
328 $prime(4)$ =instantiates= $prime(x)$, even though $prime(4)$ is false.
329 **** Comment: Perhaps we need a further distinction between objects and 'schemas'
330 So we might write =has_property(member_of(x,primes))= to talk about
331 class membership.  Presumably (except in Russell paradox situations)
332 this is the same as =has_property(x,prime)=, or whatever.
333 *** $s$ =expands= $y$
334 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
335 *** $s$ =sums= $y$
336 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
337 *** $s$ =contains as summand= $t$
338 **** Comment: This is more specific than the =used in= relation
339 This relation is interesting, for example, in the case of sums like
340 $s+t$ where $t$ is, or might be, ``small''.  Note that there
341 would be similar ways to talk about any algebraic or
342 syntactic relation (e.g., multiplicand or integrand or whatever).
343 In my opinion this is better than having one general-purpose 'structural'
344 relation that loses the distinction between all of these.  However,
345 generalising in this way does open a can of worms for addressing.
346 I.e. do we need XPATH or something like that for indexing into
347 something deeply nested?
348 *** $M$ =generalises= $m$
349 **** Comment: Here, content relationships between methods.
350 Does this work?  Instead of talking about content relationships 'at
351 the content level' we are now interested in assertions like
352 "binomial theorem" =generalises= "eliminate cross terms",
353 where both of the quoted concepts are heuristics, not 'predicates'
354 *** Proposition vs Object vs Binder vs Inference rule?
355 Note that there are different kinds of `content'.  If for example I
356 say `\(0<a<b<1 \Rightarrow a^N < b^N\)', then this is more than just a
357 proposition, but something that can be used as a ``binder''; i.e., if
358 I fill in specific values of $a$ and $b$ (and, optionally, $N$) I know
359 the property holds for them.  At the same time, this sort of "binder"
360 is presumably also a *theorem* that has been proved.  This is,
361 additionally, similar to an *inference rule* since it allows us to move
362 from one statement to another, schematically (see discussion above
363 about "instantiates").  Anyway, this isn't yet about another kind of
364 structural relation, but it does suggest that we should be a bit
365 careful about how we think about content.
366 ** inferential structure (=rel=)                                       :PINK:
367 *** =stronger= (s,t)
368 *** =not= (s)
369 *** =conjunction= (s,t)
370 *** =has_property= (o,p)
371 **** Comment: It seems useful in some case to be able to say that a 'method' or heuristic has a property
372 E.g. =has_property(strategyx, HAL)=
373 **** Comment: has_property should probably 'emit' the property as a side-effect
374 This way we can more easily see which is the object and which is the property.
375 It seems that thing that has a property may also be a 'proposition',
376 or, at least, a bit of 'object code' (like: "compute XYZ").
377 Furthermore, at least in this case, the 'property' might be a heuristic
378 or method (like "we actually know how to compute this").
379 *** =instance_of= (o,m)
380 *** =independent_of= (o,d)
381 *** =case_split= (s, {si}.i)
382 *** =wlog= (s,t)
383 ** reasoning tactics; ``meta''/guiding (=meta=)                        :BLUE:
384 *** =goal= (s)
385 *** =strategy= (s,m)
386 **** Note: use method $m$ to prove $s$
387 **** Comment: perhaps this should be =strategy= (m [, s ]) so that s is optional
388 This is because, just for graphical simplicity, we might assume that
389 the statement that we want to prove is known in advance (e.g., it is
390 the statement of the problem).
392 This is the style at the beginning of gowers-example.pdf
393 **** Comment: how to show that a suggestion 'has been implemented'?
394 We might need some other form of 'certificate' for that.
395 E.g., it would say =implements(BLOB OF CODE,strategyx)=.
396 *** =auxiliary= (s,a)
397 *** =analogy= (s,t)
398 **** Comment: analogies between statements are different from auxiliaries to prove
399 Introducing some set of 'analogies' in a way sets us up for
400 'inductive' reasoning across a class of examples.  What do they all
401 have in common?  Which one is the most suitable?  Etc.
402 ** heuristics and value judgements (=value=)                          :GREEN:
403 *** =easy= (s,t)
404 *** =plausible= (s)
405 *** =beautiful= (s)
406 *** =useful= (s)
407 *** =heuristic= (x)
408 **** Comment: It seems that we will have several layers of 'guidance'
409 Many of them will be neither value judgements nor metamathematical tags
410 like =strategy=, =goal=, or =auxiliary=.  Rather, the heuristics may be
411 used at an even higher level to produce or to implement these.  So,
412 for example, the heuristic might be what a =strategy= concretely
413 suggests.  It's also true that a given =auxiliary= might need a
414 heuristic "header", that explains /why/ this auxiliary problem has
415 been suggested.  Similar to a =strategy= the heuristic might look
416 for something that 'satisfies' or 'implements' the heuristics.
417 In some cases we've looked at, this 'satisficing' object will appear
418 directly as the argument of the heuristic, hence =heuristic(x)=.
419 For example: =specialise(THE PROBLEM, (sqrt(2)+sqrt(3))^2)=.
420 Incidentally, this particular example is only meaningful in connection
421 with *another* heuristic that has told us how to *generalise* the
422 problem, i.e., that has turned a static expression into something
423 with a variable in it.
424 ** Performatives (=perf=)                                            :YELLOW:
425 *** =Agree= (s [, a ])
426 **** Note: optional argument $a$ is a justification for $s$
427 *** =Assert= (s [, a ])
428 **** Note: optional argument $a$ is support for $s$
429 **** Comment: It seems like we might want to be able to assert a 'graph structure'
430 Here is an example from early in gowers-example.pdf
431 #+BEGIN_SRC c
432 Assert(exists(strategy(PROBLEM, strategyx))
433        AND has_property(strategyx,HAL))
434 #+END_SRC
435 *** =Challenge= (s [, c ])
436 **** Note: $c$ is a counter-argument or counter-example to $s$
437 *** =Define= (o,p)
438 **** Note: object with name $o$ satisfies property $p$
439 *** =Judge= (s)
440 **** Note: takes a =value= argument
441 *** =Query= (s)
442 *** =QueryE= ({pi(X)}.i)
443 **** Note: Asks for the class of objects  for which all of the properties pi hold
444 *** =Retract= (s [, a ])
445 **** Note: can only be made by someone who asserted $s$; $a$ is an optional reason
446 *** =Suggest= (s)
447 **** Note: Takes a =meta= argument
449 * Extensions to the core
451 ** IAT + CD
453 By itself, IAT is useful for describing *what* takes place in a
454 mathematical discourse, but not so useful for figuring out *why*
455 and *how* (viz., kinematics and dynamics).  To address these issues,
456 we will augment it with the framework of /conceptual dependency theory/ (CD),
457 which has been used for such purposes in the context of machine understanding of stories
458 \cite{leon2011computational}.
460 # also a chapter in the AI Handbook.
462 The main ingredient of CD is a set of *primitives* which describe
463 types of actions.  Ususally, these consist of various physical and
464 mental operations but, for the purpose at hand, we will take them to
465 be the *performatives* of IAT.
467 We will have two classes of objects: the participants in the dialogue
468 and mathematical propositions.  
470 *** TODO We should figure out what the inferences between basic assertions (I/R, I/E, etc.) would look like here. (e.g. fig. 7 of Lytinen)
472 - links between basic CD's
473  - e.g., joe communicated the IP address to ray, by talking, so that ray could get on the server
475 ** Goals
477 In order to figure out why and how actions take place, CD theory
478 introduces procedural knowledge in the form of scripts, MOPs, TOPs,
479 goals, and plans.  For our purposes, goals and plans will be used.
481 This relates to the meta items of the spec.  Maybe we should expand
482 the goal item using some sort of ontology like that of Schank and
483 Ableson.
485 ** Parsing
487 A simple example from \cite{lytinen1992conceptual} schematizes the
488 sentence "John gave Mary a book" as an s-expression.
490 #+BEGIN_SRC lisp
491 (atrans actor  (person name john)
492         object (phys-obj type book)
493         recip  (person name mary))
494 #+END_SRC
496 ** Possible "warm up" example
498 "Adjoints exist and are unique." - See Halmos.
500 #+BEGIN_SRC lisp
501 (defn adjoint-of-a-bounded-linear-operator-on-a-hilbert-space
502   (X Y A Astar)
503   (hilbert-space X)
504   (hilbert-space Y)
505   (bounded-linear-operator A X Y)
506   (and (map Astar Y X)
507        (forall x :in X :st
508                (forall y :in Y :st
509                        (eq (inner-product :on Y :of (A x) y)
510                            (inner-product :on X :of x (Astar y)))))))
512 (defproof
513   adjoint-of-a-bounded-linear-operator-on-a-hilbert-space:fact:
514   adjoints-exist-and-are-unique (A X Y)
515   (hilbert-space X)
516   (hilbert-space Y)
517   (bounded-linear-operator A X Y)
518   (bind phi (map phi X Y :takes x
519                  :to (inner-product :on Y :of (A x) y)))
520   ;; We need to show that phi is linear, but that’s ‘easy’
521   (shows (linear phi)
522          (linear A)
523          (properties-of-inner-product))
524   ;; The lemma allows us to spawn a reasonable target
525   (obtain v :st
526           (unique v :in X :st
527                   (forall u :in X :st (eq (varphi u)
528                                           (inner-product :in X :of u v))))
529           (uniquely-represent-a-linear-functional-by-an-inner-product
530            X phi))
531   (bind Astar (map Astar Y X :takes w :to v))
532   ;; Finally, assert that the Astar so constructed is the adjoint
533   (assert (adjoint-of-a-bounded-linear-operator-on-a-hilbert-space X Y
534                                                                    A Astar)))
535 #+END_SRC
537 * Task tree
539 ** Infrastructure
541 This file is in versioned storage in the "mob" branch of our arxana
542 repo; instructions to access are here:
543 http://repo.or.cz/w/arxana.git/blob_plain/d187e244a8eb7d2208f1fe98db1ef895c6cd4a36:/README.mob
545 A working copy of this repository is checked out at
546 =/home/shared-folder/arxana-redux/arxana/= on the Linode.
548 And a "scratch" copy of the file has been copied to:
549 =/home/shared-folder/arxana-redux/arxana-redux.org=
551 This can be edited in live sessions using =togetherly.el=.
553 ** Progress on paper
555 *** Corpus/Examples: Hand-drawn diagrams in IAT+C
557 /We are allowed to submit an appendix without a size limit, so if we don't have room for all of the diagrams in the paper, we could put them in the appendix./
559 - Minipolymath, treated by Gabi in the Transactions on Social Computing paper, pdf available from https://www.overleaf.com/read/jyhzpqsythzq
560 - Our randomly selected MathOverflow discussion (from Q&A article)
561 - Gowers 2012 trick problem, http://metameso.org/ar/gowers-example.pdf
562 - Also there's Schuam's Abstract Algebra exercise 337, a diagram is shown on arxana.net.
563  - Redone using IATC: http://metameso.org/ar/schuams-example.pdf
564 - An example from the Ganesalingam and Gowers paper: http://metameso.org/ar/robotone-example.pdf
565 - Galois theory. Emil Artin's book.
566 - Euclid algorithm
567 - possibly an example from metamath or coq or whatever to show that we can model that stuff as discourse...
568 - ...
570 *** Other Background
572 **** Items we've worked on before
574 Over the years as we've worked on Arxana, we have generated all sorts
575 of files.  Here are descriptions and locations of some of them which
576 are relevant to the current project.
578 Many of these are stored in =/home/shared-folder/public_html/=, and
579 accessible on the web at [[http://metameso.org/ar/]].
581 ***** Research notes
583 - "nemas" document:  http://metameso.org/ar/metamathematics.pdf
584 - Joe's thesis Appendix B: http://metameso.org/ar/thesis-appendix-b.pdf
585 - Metamathematics preprint: http://metameso.org/ar/mathematical-semantics.pdf
586 - hcode function spec: http://metameso.org/ar/hcode.pdf
587 - Lakatos game spec: http://metameso.org/ar/lakatos-flowchart.pdf
589 ***** Wiki
591 - [[http://metameso.org/cgi-bin/current.pl?action=browse;oldid=Arxana;id=A_scholium-based_document_model][A scholium-based document model]] is the wiki homepage for Arxana and has several relevant discussions.
592 - [[http://metameso.org/cgi-bin/current.pl/Two_years_later][Two years later]] collects many of the mathematical themes in
593   overview
594 - [[http://metameso.org/cgi-bin/current.pl/samples_of_formal_mathematical_writing][samples of formal mathematical writing]] is a small collection
595   of statements in mathematical language (leaving out ``the part
596   in between dollar signs'')
598 ***** Website
600 - [[http://arxana.net][arxana.net]] has links to source code from various prototypes
601  - It also has a small gallery of hand-drawn diagrams
603 **** And other things elsewhere:
605 - /Handbook of artificial intelligence/ by Barr and Feigenbaum describes *SAM* and *PAM*, the /Script Applier Mechanism/ and /Plan Applier Mechanism/ by Schank and Abelson et al., on page 306 et seq. \cite{barr1981handbook}
606 - Winograd, Natural language and stories --- MIT AI Technical Report 235, February 1971 with the title "Procedures as a Representation for Data in a Computer Program for Understanding Natural Language" ([[http://hci.stanford.edu/winograd/shrdlu/AITR-235.pdf][link]])
607  - Could we reuse this stuff for the "narrative"
608  - How do we know how to read the text and transform it into IATC?
609  - An example is Gowers's "total stuckness": how do we turn that into code?
610 - Conceptual dependency representation - from "Deep Blue" website ([[https://deepblue.lib.umich.edu/bitstream/handle/2027.42/30278/0000679.pdf?sequence=1][link]]).
611  - Schank's MARGIE system is described on page 300 /et seq./ of \cite{barr1981handbook}.
612 - AI textbook in wiki.
614 *** TODO Initial non-working pseudocode prototype
616 Here it makes sense to at least try and transcribe the main examples
617 in some "pseudocode", inspired by IATC and hcode, which we can then
618 refine into a working version later.
620 Several examples have been transcribed:
622 - http://metameso.org/ar/mpm3.html
623 - http://metameso.org/ar/gowers2012.html
624 - http://metameso.org/ar/robotone-opensets.html
626 However, as per the headline, these don't currently *do* anything.
628 *** TODO Basic working version
630 *** TODO Can the system come up with answers to new, basic, questions?
632 - Inspired by Nuamah et al's geography examples
633 - Simple comparisons, like, how does this concept relate to that concept?  We informally talk about this as ``analogy'' between concepts.  But...
635 *** TODO Foldable views (like in Org mode) so that people can browse proofs
637 - This may come after the May submission
638 - Folding and unfolding the definitions of terms in something like an APM context is relevant example.  Just `unpacking' terms.
640 * Related work
642 ** In a mathematics context
644 - ``Lakatos-style Collaborative Mathematics through Dialectical,
645   Structured and Abstract Argumentation'' shows how it is possible to
646   ``formalize'' the informal logic proposed by Lakatos
647   \cite{pease2017lakatos}.
648 - [[http://www.emis.de/monographs/Trzeciak/biglist.html][Mathematical English Usage - a Dictionary]] (Jerzy Trzeciak)
649 - [[https://case.edu/artsci/math/wells/pub/html/abouthbk.html][The Handbook of Mathematical Discourse]] (Charles Wells)
650 - [[http://universaar.uni-saarland.de/monographien/volltexte/2015/111/pdf/wolska_mathematicalProofs_komplett_e.pdf][Students'language in computer-assisted tutoring of mathematical proofs]] (Magdalena A. Wolska)
652 ** Does what we're doing relate in any way to other formal proof checkers?
654 - Default answer: no, because people have build large repositories of formal math (Mizar, Coq, metamath, etc.).  These other projects don't make a serious effort to deal with mathematical text.  TeX is in one place, and logic is in another place.
656  - There's another paper by Josef Urban et al. that is the exception that proves the rule \cite{kaliszyk2014developing} (see also the poster that accompanied this paper \cite{kaliszyk2014developing-misc})
658 - There's also a generative program by Ganesalingam and Gowers thath meshes natural language and formal mathematical reasoning.
660 - With these examples in mind, we assert that what we are doing can be combined with proof checkers synergistically.  For instance, one could attach scholia to the statements in an IAT representation which contain formalized representations of the content, and scholia which indicate that certain statements have been