simplify iatc slides
[arxana.git] / org / arxana-redux.org
blob143d208217bf19f7008445b6175153721b3254cb
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 paper 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:4 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 and FARM 2017 workshops at the International Conference
24 on Functional Programming (/ICFP/) to take place at Oxford this
25 September, are making presentations about /Arxana/ and math texts.  We
26 plan to follow this up with submissions to relevant international
27 conferences next year, like /IJCAI/ or the main conference track at
28 ICFP.
30 For the demo at FARM, we want to have Arxana working, then use it to
31 mark up a mathematical text using /IATC/ + /CD/.  We hope to have a
32 demo ready that shows what this sort of /scholiumific representation/
33 is good for.
35 Together with our colleagues in Ursula Martin's fellowship
36 project on "The Social Machine of Mathematics" we have written
37 a 12 page paper for the FARM workshop that describes
38 these ideas in more detail.  It can be found here:
39 http://metameso.org/ar/farm-2017.pdf
41 Further information on the project and ongoing development, including
42 agenda items relevant to future papers, can be found below.
44 ** Previous presentations
46 *** CIAO talk
47 This talk outlined the project and some related ideas, and described some of
48 the big picture in which this work fits; an outline of the
49 slides is here: [[file:~/arxana/org/ciao-talk.org][ciao-talk.org]]
50 *** Emacs NYC July 10th
51 This presentation walked through the concepts of Arxana
52 and showed code embedded in networks; abstract at
53 http://metameso.org/ar/
54 *** Big Proof talk same week
55 Some of Joe's biography and reasons for working on this project,
56 followed by the Q&A example presented at CICM and the Gowers 2012
57 example as in our FARM paper. Slides here:
58 http://metameso.org/~joe/docs/ini-big-proof.pdf
60 ** Glossary of keywords
62 - ICFP :: the *International Conference on Functional Programming* is
63           an annual academic conference in the field of computer
64           science sponsored by the ACM SIGPLAN, the Association for
65           Computing Machinery's Special Interest Group on programming
66           languages.[fn:1] In 2017, we submitted a lightning talk for
67           the [[http://www.schemeworkshop.org/][Scheme and Functional Programming]] workshop, and a full
68           paper for the [[http://functional-art.org/2017/cfp.html][Functional Art, Music, Modelling and Design]]
69           (FARM) workshop.
71 - IJCAI :: the *International Joint Conference on Artificial
72            Intelligence* is one of the top international yearly
73            conferences in AI.  The deadline for paper submissions is
74            usually in January or February, and the conference is
75            usually in July or August.  In [[http://www.chessprogress.com/IJCAI-2018/][IJCAI 2018]] will be held in
76            Stockholm.
78 - Arxana :: *Arxana* is the name given to a series of prototype
79             implementations of the scholium-based document model with
80             an Emacs front-end.  Arxana is inspired in part by Ted
81             Nelson's Xanadu™ project, which was the first effort to
82             work with ``hypertext'' per se
83             \cite{nelson1981literary}. We have been specifically
84             interested in applications within mathematics, which has
85             given Arxana a unique flavour.  In particular, we propose
86             to use a scholium model to model the logic of proofs, not
87             just to represent mathematical texts for reading.
89 - IATC :: Inference Anchoring Theory was devised by Budzynska et al
90           \cite{budzynska2014model} to model the logical structure of
91           dialogical arguments.  This has since been adapted to model
92           mathematical arguments; the adapted version is called
93           *Inference Anchoring Theory + Content*
94           \cite{corneli2017qand}.  The primary features of this
95           adaptation are: (1) to introduce more explicit relationships
96           between pieces of mathematical content; and (2) to advance a
97           range of ``predicates'' that relate mathematical
98           propositions.  These predicates describe inferential
99           structure, judgements of validity or usefulness, and
100           reasoning tactics.
102 - scholium :: A *scholium* is a word for a marginal annotation or
103               scholarly, explanatory, remark. Corneli and Krowne
104               proposed a "scholia-based document model"
105               \cite{corneli2005scholia} for "commons-based peer
106               production," that is, the kind of collaborative online
107               knowledge-building that happens on sites like Wikipedia
108               or in online forums \cite{benkler2002coase}, or in other
109               digital libraries broadly construed
110               \cite{krowne2003building}.  The proposal is that online
111               text resources grow ``by attaching.''  One familiar
112               class of examples is provided by revision control
113               systems, e.g., Git, which builds a network history of
114               changes to documents in a directed acyclic graph (DAG).
116 - CD :: *Conceptual Dependence* was introduced as a tool for
117         understanding natural language \cite{schank1972conceptual}. It
118         is also used to represent knowledge about actions
119         \cite{lytinen1992conceptual,sowa2008conceptual}.  The basis of
120         the theory is a set of /primitives/ which describe basic types
121         of actions such as "PTRANS — transfer of location" or "MBUILD
122         — construction of a thought or new information". Each
123         primitive comes with a set of /slots/ which accept objects of
124         certain types. By filling in the slots of a primitive, one
125         obtains the most elementary form of a /conceptual dependency
126         graph/. By combining such basic graphs, one can build up more
127         complicated CD graphs which describe actions in greater
128         detail.
130 [fn:1] Previous publications in the ICFP conference series touch on things like this:
131  /A functional programmer's guide to homotopy type theory/,
132  /Program synthesis: opportunities for the next decade/,
133  /Lem: reusable engineering of real-world semantics/ [Lem stands for "[[http://www.cl.cam.ac.uk/~pes20/lem/][Lightweight executable mathematics]]"],
134  /Functional programming with structured graphs/,
135  /Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages/,
136  /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/,
137  /TeachScheme!: a checkpoint/,
138  /A functional I/O system or, fun for freshman kids/ and
139  /Commutative monads, diagrams and knots/
140  (... the foregoing list being a selection of papers from the proceedings over
141  the last 10 years that mention "mathematics" or something similar; hopefully at least a few of them are relevant).
143 * Outline of our ICFP workshop submissions
145 Our draft notes have been moved to a separate org mode file, see [[file:~/arxana/org/icfp-workshops.org::*Plan%20of%20our%20ICFP%20workshop%20contributions][Plan
146 of our ICFP workshop contributions]].
148 ** FARM
150 The outline of sections in our final FARM submission is as follows:
152 - Introduction 
153 - Background
154  - Framing the Current Effort
155 - Survey of Related Work 
156  - Models of Mathematical Reasoning
157   - Inference Anchoring Theory + Content
158   - Conceptual Dependence
159   - Structured Proofs
160   - Lakatos Games
161  - The Search for the 'Quantum of Progress'
162 - Example: A Diagrammatic Model of Mathematical Reasoning via IATC 
163 - Towards Functional Models of Mathematical Reasoning
164  - Kinematics (IATC+CD)
165  - Dynamics
166 - Our Prototype, /Arxana/
167  - System Overview
168  - Application to Mathematical Reasoning 
169 - Conclusions and Future Work
170 - Partial Specification of IATC 
172 ** Scheme
174 For the Scheme workshop we only submitted an abstract, which is on
175 http://metameso.org/ar/
177 * Guide to files in our git repository <<short-docs>>
179 The items currently receiving the most attention are: [[arxana-redux]], [[arxana-merge]], and [[honey-spec]].
181 ** org
182 *** arxana-redux.org <<arxana-redux>>
183 *This file -- a guide to our work in progress.*
184 *** honey-spec.org <<honey-spec>>
185 Gives a specification for the backend. Status: consensus draft, needs to be applied to code
186 in [[arxana-merge]].
187 *** robotone-opensets.org
188 Walk through a simple proof ROBOTONE proof from \cite{Ganesalingam2016} and mark it up in IATC.
189 *** mpm.org
190 Walk through parts of a MiniPolymath proof and mark it up in IATC.
191 *** scheme-2017.org
192 Our submitted abstract for Scheme 2017 lightning talk.
193 *** gowers2012.org
194 Walk through a simple proof from Gowers and mark it up in IATC.
195 *** ciao-talk.org
196 Slides on "Reasoning about mathematics with graphical programs" presented Tuesday 23 May, 2017 at "CIAO 25 AB 70" in Edinburgh.
197 *** farm-2017.org
198 Preliminary outline of our FARM 2017 submission.
200 ** latex
201 *** arxana-reboot.tex <<arxana2010>>
202 This is the 2010-era version of Arxana.  Unlike its predecessor [[arxana2005]], this uses Common Lisp and
203 MySQL for storage, so the setup process is more complicated.  In principle some other external datastore could be used, i.e., a [[https://en.wikipedia.org/wiki/Graph_database][graph database]] like [[https://en.wikipedia.org/wiki/Neo4j][Neo4j]] or a hypergraph database like [[http://hypergraphdb.org/][HypergraphDB]] or [[https://github.com/opencog/atomspace][AtomSpace]],
204 the latter being especially quite close to what we're working on, since they make use of "Atoms" which are similar to our "nemas", and since they have Scheme bindings for their database operations.
206 *** arxana-merge.tex <<arxana-merge>>
207 This is the 2017 rewrite of Arxana.  It is derived from [[arxana2010]] and
208 [[honey]] -- specifically, honey provides a backend entirely inside Emacs,
209 so we can dispense with complicated connections to external programs.
210 Some additional features from [[arxana2005]] still need to be merged in.
212 *** honey-demo.tex
213 Exposition of the "Higher Order NEsted Yarnknotter" (HONEY) system.  Some of this text went into our paper for FARM 2017.
214 *** sbdm4cbpp.tex <<arxana2005>>
215 This is the 2005-era version of Arxana.  It runs entirely in Emacs, using a hash table for storage.
216 A version of the software was demoed in Atlanta at the Free Culture and the Digital Library Symposium, in connection with
217 \cite{corneli2005scholia}.  It was largely replaced by [[arxana2010]], though this version still has some features that the
218 later version lacked.
219 *** sch-prog.png
220 A figure to illustrate code embedded inside of networks; used in an early draft of the FARM paper.
222 ** elisp
223 *** binom-demo.el
224 *** bootstart.el
225 *** clyde.el
226 *** honey.el <<honey>>
227 All of the code for low-layer HONEY functionality.
228 *** prelim.el
229 *** sch-prog-demo.el
230 *** sch-prog.el
231 *** simple-ui.el
232 *** search-expanded.el
233 This contains meso-layer search functionality built on top of HONEY.
234 *** tarot.el
235 Used for building arxana.net.  Could be expanded to produce adaptive text (e.g., narrative tarot readings); see \cite{veale2017dejavu} for an illustration of how.
237 ** elsewhere
239 *** In our web directory
241 Many of these have been copied to =/home/shared-folder/public_html/=,
242 and accessible on the web via [[http://metameso.org/ar/]].
244 - "nemas" document:  http://metameso.org/ar/metamathematics.pdf
245 - Joe's thesis Appendix B: http://metameso.org/ar/thesis-appendix-b.pdf
246 - Metamathematics preprint: http://metameso.org/ar/mathematical-semantics.pdf
247 - hcode function spec: http://metameso.org/ar/hcode.pdf
248 - Lakatos game spec: http://metameso.org/ar/lakatos-flowchart.pdf
250 *** On the old AsteroidMeta wiki
252 - [[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.
253 - [[http://metameso.org/cgi-bin/current.pl/Two_years_later][Two years later]] collects many of the mathematical themes in
254   overview
255 - [[http://metameso.org/cgi-bin/current.pl/samples_of_formal_mathematical_writing][samples of formal mathematical writing]] is a small collection
256   of statements in mathematical language (leaving out ``the part
257   in between dollar signs'')
259 * Other relevant background
261 This file includes some references in BibTeX.  Some annotations on
262 specific items are here:
264 - *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}
265 - *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]])
266  - Could we reuse this stuff for the "narrative"
267  - How do we know how to read the text and transform it into IATC?
268  - An example is Gowers's "total stuckness": how do we turn that into code?
269 - *Conceptual dependency representation* - from "Deep Blue" website ([[https://deepblue.lib.umich.edu/bitstream/handle/2027.42/30278/0000679.pdf?sequence=1][link]]).
270  - Schank's MARGIE system is described on page 300 /et seq./ of \cite{barr1981handbook}.
271  - AI textbook in wiki.
273 * Infrastructure
275 The current file is in versioned storage in the "mob" branch of our arxana
276 repo; instructions to access are here:
277 http://repo.or.cz/w/arxana.git/blob_plain/d187e244a8eb7d2208f1fe98db1ef895c6cd4a36:/README.mob
279 A working copy of this repository is checked out at
280 =/home/shared-folder/arxana-redux/arxana/= on the Linode.
282 And a "scratch" copy of the file has been copied to:
283 =/home/shared-folder/arxana-redux/arxana-redux.org=
285 This can be edited in live sessions using floobits.
287 *Note* Due to buggy behavior of togetherly, we've since decided to
288 switch to Floobits for live editing sessions, via:
290 =M-x floobits-join-workspace RET https://floobits.com/holtzermann17/arxana RET=
292 * Extensions to the core of IATC
294 ** IAT + CD
296 By itself, IAT is useful for describing *what* takes place in a
297 mathematical discourse, but not so useful for figuring out *why*
298 and *how* (viz., kinematics and dynamics).  To address these issues,
299 we will augment it with the framework of /conceptual dependency theory/ (CD),
300 which has been used for such purposes in the context of machine understanding of stories
301 \cite{leon2011computational}.
303 # also a chapter in the AI Handbook.
305 The main ingredient of CD is a set of *primitives* which describe
306 types of actions.  Ususally, these consist of various physical and
307 mental operations but, for the purpose at hand, we will take them to
308 be the *performatives* of IAT.
310 We will have two classes of objects: the participants in the dialogue
311 and mathematical propositions.
313 ** Goals
315 In order to figure out why and how actions take place, CD theory
316 introduces procedural knowledge in the form of scripts, MOPs, TOPs,
317 goals, and plans.  For our purposes, goals and plans will be used.
319 This relates to the meta items of the spec.  Maybe we should expand
320 the goal item using some sort of ontology like that of Schank and
321 Ableson.
323 ** Parsing
325 A simple example from \cite{lytinen1992conceptual} schematizes the
326 sentence "John gave Mary a book" as an s-expression.
328 #+BEGIN_SRC lisp
329 (atrans actor  (person name john)
330         object (phys-obj type book)
331         recip  (person name mary))
332 #+END_SRC
334 ** Possible "warm up" example
336 "Adjoints exist and are unique." - See Halmos.
338 #+BEGIN_SRC lisp
339 (defn adjoint-of-a-bounded-linear-operator-on-a-hilbert-space
340   (X Y A Astar)
341   (hilbert-space X)
342   (hilbert-space Y)
343   (bounded-linear-operator A X Y)
344   (and (map Astar Y X)
345        (forall x :in X :st
346                (forall y :in Y :st
347                        (eq (inner-product :on Y :of (A x) y)
348                            (inner-product :on X :of x (Astar y)))))))
350 (defproof
351   adjoint-of-a-bounded-linear-operator-on-a-hilbert-space:fact:
352   adjoints-exist-and-are-unique (A X Y)
353   (hilbert-space X)
354   (hilbert-space Y)
355   (bounded-linear-operator A X Y)
356   (bind phi (map phi X Y :takes x
357                  :to (inner-product :on Y :of (A x) y)))
358   ;; We need to show that phi is linear, but that’s ‘easy’
359   (shows (linear phi)
360          (linear A)
361          (properties-of-inner-product))
362   ;; The lemma allows us to spawn a reasonable target
363   (obtain v :st
364           (unique v :in X :st
365                   (forall u :in X :st (eq (varphi u)
366                                           (inner-product :in X :of u v))))
367           (uniquely-represent-a-linear-functional-by-an-inner-product
368            X phi))
369   (bind Astar (map Astar Y X :takes w :to v))
370   ;; Finally, assert that the Astar so constructed is the adjoint
371   (assert (adjoint-of-a-bounded-linear-operator-on-a-hilbert-space X Y
372                                                                    A Astar)))
373 #+END_SRC
375 * Task tree
376 ** Progress on preparing the work for public consumption
378 *** DONE Corpus/Examples: Hand-drawn diagrams in IATC
380 /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./
382 - Minipolymath, treated by Gabi in the Transactions on Social Computing paper, pdf available from https://www.overleaf.com/read/jyhzpqsythzq
383 - Our randomly selected MathOverflow discussion (from Q&A article)
384 - Gowers 2012 trick problem, http://metameso.org/ar/gowers-example.pdf
385 - Also there's Schuam's Abstract Algebra exercise 337, a diagram is shown on arxana.net.
386  - Redone using IATC: http://metameso.org/ar/schuams-example.pdf
387 - An example from the Ganesalingam and Gowers paper: http://metameso.org/ar/robotone-example.pdf
388 - Galois theory. Emil Artin's book.
389 - Euclid algorithm
390 - possibly an example from metamath or coq or whatever to show that we can model that stuff as discourse...
391 - ...
393 *** DONE Initial non-working "paper prototype" for FARM example(s)
395 It makes sense to at least try and transcribe the main examples in
396 some "pseudocode", inspired by IATC and hcode, which we can then
397 refine into a working version later.
400 As per the headline, these don't currently *do* anything.
402 - http://metameso.org/ar/mpm3.html
403 - http://metameso.org/ar/gowers2012.html
404 - http://metameso.org/ar/robotone-opensets.html
406 In our FARM paper we have analysed some of the Gowers paper in more
407 depth.
409 *** DONE Complete a short summary documentation
411 - The section [[short-docs]] here describes the files in our repository. (This needs to be maintained.)
412 - [[file:~/arxana/latex/honey-spec.org][honey-spec.org]] gives a specification for the backend. (This is nearly accurate but some revisions need to be carried out.)
414 *** DONE connect frontend for interaction and backend for storage
415 We have shown how this works with backend storage in-memory in Emacs,
416 noting that (/in principle/) storage could be in a database or something
417 else.  This flexibility is ensured by the clear separation of concerns
418 between different layers of the system.
421 ** Future work
422 *** Immediate upcoming: Before September 3-9 ICFP conference, focusing on our demo
423 **** TODO Clean up namespaces of functions                      :maintenance:
424 E.g. write =honey:add-nema= instead of =add-nema=.
425 **** TODO find the generic interface layer and put it in its own file :maintenance:
426 Sketched in honey-spec.org, but let's make sure it's consistent.
427 **** TODO Assemble/disassemble a buffer from/to distributed storage :demoscheme:
429 While not needed for our FARM demo, this could be useful for the
430 Scheme demo because it makes a relatively convincing case.  And
431 furthermore this would be good as user facility and for us as we
432 continue working on the project.
434 - E.g., related work of arxana-merge merge automatically.
436 **** TODO Write a basic IATCD evaluator to load Listing 1 stuff        :demofarm:
438 /What is a better name for IATCD?/ ;-)
440 This is just at the level of moving data around - specifically turning
441 s-expressions into triples.
443 **** TODO Use scholium-based programs to run Listing 2                 :demofarm:
445 This is a minimal *working* implementation of what we talk about in the paper.
447 **** TODO How do inferential connections work (I/R, I/E, etc.)? :demofarm:
449 E.g. fig. 7 of Lytinen.
451 This is just for exposition, when talking about prior art it would be nice to know how they did it.
453 - links between basic CD's
454  - e.g., joe communicated the IP address to ray, by talking, so that ray could get on the server
456 *** Next steps: Paper for IJCAI 2018
457 **** TODO IJCAI 2018: Write up applications to mathematics            :platform:
458 Possibly for IJCAI/ECAI.
459 Papers due *January 2018*? http://www.chessprogress.com/IJCAI-2018/calls/
460 To take place *July 13-19, 2018*
461 **** Demo the system walking through the steps of a proof like GCP or MPM.
462 **** Demo with APM prelim problems
463 This might be a "future work" section for this paper.
464 **** Demo with APM-Xi content
465 Show interface with types.
466 - E.g. APM-Xi style formulations of category theory definitons could be salient to work with.
468 *** Next steps: Paper for ICFP 2018
469 **** TODO ICFP 2018: Logic programming like Reasoned Schemer but for hypergraphs :platform:
470 Possibly submit to [[http://conf.researchr.org/home/icfp-2018][ICFP]]. Papers due *Fri 16 Mar 2018*.
471 Event to take place in St. Louis, Missouri, United States, to take place *late September*.
472 **** Fuzzy search to retrieve loose matches and analogies
473 **** Write a simple user language and an interface that generates triplets/quintuplets
474 **** Can the system come up with answers to new, basic, questions?
476 - Inspired by Nuamah et al's geography examples
477 - Simple comparisons, like, how does this concept relate to that concept?  We informally talk about this as ``analogy'' between concepts.  But...
479 **** Foldable views (like in Org mode) so that people can browse proofs
481 - This may come after the May submission
482 - Folding and unfolding the definitions of terms in something like an APM context is relevant example.  Just `unpacking' terms.
483 - Note that there is some relevant prior work in the "Wikum" paper of Amy Zhang et al
485 *** Other next steps: from the Future Work section of our FARM paper
487 This could potentially be used as the basis of an ERC fellowship
488 proposal.  The "2018" version of the call was released August 3 2017,
489 and is due October 17 2017.  Presumably the "2019" version of the call
490 will be run on a similar timeline.  A long PDF describing the current
491 call is here: [[http://ec.europa.eu/research/participants/data/ref/h2020/other/guides_for_applicants/h2020-guide18-erc-stg-cog_en.pdf][h2020-guide18-erc-stg-cog_en.pdf]].
493 **** Formal proof
494 ***** Demo the system walking through the steps of a proof like GCP or MPM.
495 If we keep at it, might have this ready by January, in time for an
496 IJCAI paper.
497 ***** Refine both representations and reasoning aspects.
498 ***** Integrate external computer algebra / proof checking systems.
499 **** Embodiment and cognitive science
500 ***** Build on CD theory to reason about embodied intuitions in geometric problems, integrate with Lakoff and Núñez's conceptual metaphors \cite{kaliszyk2014developing-misc}.
501 **** Linguistics and NLP
502 ***** Integrate parsers to generate IATC+CD automatically.
503 ***** Use these models to seed statistical machine learning, e.g., expanding on the work of Kaliszyk et al who ascertained the frequency of various schematic usages like ``let \(X\) be a \(Y\)'' in a specific corpus of proofs.
504 **** Machine learning
505 ***** Integrate with knowledge bases of mathematical terms and frequency data (as above).
506 ***** Model Stack Exchange dialogues, in parallel with the work done  on Reddit discussions \cite{zhang2017characterizing}.
507 ***** Build a system with multiple agents that ``converse with each other to sharpen their wits'' \cite{heretical-theory}.
509 * Related work
511 ** In a mathematics context
513 - ``Lakatos-style Collaborative Mathematics through Dialectical,
514   Structured and Abstract Argumentation'' shows how it is possible to
515   ``formalize'' the informal logic proposed by Lakatos
516   \cite{pease2017lakatos}.
517 - [[http://www.emis.de/monographs/Trzeciak/biglist.html][Mathematical English Usage - a Dictionary]] (Jerzy Trzeciak)
518 - [[https://case.edu/artsci/math/wells/pub/html/abouthbk.html][The Handbook of Mathematical Discourse]] (Charles Wells)
519 - [[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)
521 ** Does what we're doing relate in any way to other formal proof checkers?
523 - 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.
525  - 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})
527 - There's also a generative program by Ganesalingam and Gowers thath meshes natural language and formal mathematical reasoning.
529 - 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 
531 * The core language
533 Here we'll describe the structures coming from several different
534 places, e.g., Gabi, Lakatos, etc.
536 ** Content (=structure=)                                               :GRAY:
537 *** object $O$ is =used_in= proposition $P$
538 **** Example: ``The Caley graph of group \(G\)'' has sub-object $G$
539 *** proposition $Q$ is a =sub-proposition= of proposition $P$
540 **** Example: ``$P$ is difficult to prove'' has sub-proposition $P$
541 *** proposition $R$ is a =reformed= version of proposition $P$
542 **** Example: ``Every $x$ is a \(P\)'' might be reformed to ``Some $x$ is a \(P\)''
543 *** property $p$ is as the =extensional_set= of all objects with property $p$
544 **** Example: the set $\mathcal{P}$ of primes is the extension of the predicate $\mathit{prime}$.
545 *** $O$ =instantiates= some class $C$
546 **** Comment: This is not quite syntactic sugar for =has_property=!
547 If we have a class of items $C$ we want to be able say that $x$ is a
548 member of $C$.  In principle, we could write $x$ =has_property= $C$.
549 But I think there are cases where we would want to
550 distinguish between, e.g.,
551 $2$ =has_property= prime, and $prime(2)$ =instantiates=
552 $prime(x)$.  This =instantiates= operation is a natural extension of
553 backquote; so e.g., we could write the true statement
554 $prime(4)$ =instantiates= $prime(x)$, even though $prime(4)$ is false.
555 **** Comment: Perhaps we need a further distinction between objects and 'schemas'
556 So we might write =has_property(member_of(x,primes))= to talk about
557 class membership.  Presumably (except in Russell paradox situations)
558 this is the same as =has_property(x,prime)=, or whatever.
559 *** $s$ =expands= $y$
560 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
561 *** $s$ =sums= $y$
562 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
563 *** $s$ =contains as summand= $t$
564 **** Comment: This is more specific than the =used in= relation
565 This relation is interesting, for example, in the case of sums like
566 $s+t$ where $t$ is, or might be, ``small''.  Note that there
567 would be similar ways to talk about any algebraic or
568 syntactic relation (e.g., multiplicand or integrand or whatever).
569 In my opinion this is better than having one general-purpose 'structural'
570 relation that loses the distinction between all of these.  However,
571 generalising in this way does open a can of worms for addressing.
572 I.e. do we need XPATH or something like that for indexing into
573 something deeply nested?
574 *** $M$ =generalises= $m$
575 **** Comment: Here, content relationships between methods.
576 Does this work?  Instead of talking about content relationships 'at
577 the content level' we are now interested in assertions like
578 "binomial theorem" =generalises= "eliminate cross terms",
579 where both of the quoted concepts are heuristics, not 'predicates'
580 *** Proposition vs Object vs Binder vs Inference rule?
581 Note that there are different kinds of `content'.  If for example I
582 say `\(0<a<b<1 \Rightarrow a^N < b^N\)', then this is more than just a
583 proposition, but something that can be used as a ``binder''; i.e., if
584 I fill in specific values of $a$ and $b$ (and, optionally, $N$) I know
585 the property holds for them.  At the same time, this sort of "binder"
586 is presumably also a *theorem* that has been proved.  This is,
587 additionally, similar to an *inference rule* since it allows us to move
588 from one statement to another, schematically (see discussion above
589 about "instantiates").  Anyway, this isn't yet about another kind of
590 structural relation, but it does suggest that we should be a bit
591 careful about how we think about content.
592 ** inferential structure (=rel=)                                       :PINK:
593 *** =stronger= (s,t)
594 *** =not= (s)
595 *** =conjunction= (s,t)
596 *** =has_property= (o,p)
597 **** Comment: It seems useful in some case to be able to say that a 'method' or heuristic has a property
598 E.g. =has_property(strategyx, HAL)=
599 **** Comment: has_property should probably 'emit' the property as a side-effect
600 This way we can more easily see which is the object and which is the property.
601 It seems that thing that has a property may also be a 'proposition',
602 or, at least, a bit of 'object code' (like: "compute XYZ").
603 Furthermore, at least in this case, the 'property' might be a heuristic
604 or method (like "we actually know how to compute this").
605 *** =instance_of= (o,m)
606 *** =independent_of= (o,d)
607 *** =case_split= (s, {si}.i)
608 *** =wlog= (s,t)
609 ** reasoning tactics; ``meta''/guiding (=meta=)                        :BLUE:
610 *** =goal= (s)
611 *** =strategy= (s,m)
612 **** Note: use method $m$ to prove $s$
613 **** Comment: perhaps this should be =strategy= (m [, s ]) so that s is optional
614 This is because, just for graphical simplicity, we might assume that
615 the statement that we want to prove is known in advance (e.g., it is
616 the statement of the problem).
618 This is the style at the beginning of gowers-example.pdf
619 **** Comment: how to show that a suggestion 'has been implemented'?
620 We might need some other form of 'certificate' for that.
621 E.g., it would say =implements(BLOB OF CODE,strategyx)=.
622 *** =auxiliary= (s,a)
623 *** =analogy= (s,t)
624 **** Comment: analogies between statements are different from auxiliaries to prove
625 Introducing some set of 'analogies' in a way sets us up for
626 'inductive' reasoning across a class of examples.  What do they all
627 have in common?  Which one is the most suitable?  Etc.
628 ** heuristics and value judgements (=value=)                          :GREEN:
629 *** =easy= (s,t)
630 *** =plausible= (s)
631 *** =beautiful= (s)
632 *** =useful= (s)
633 *** =heuristic= (x)
634 **** Comment: It seems that we will have several layers of 'guidance'
635 Many of them will be neither value judgements nor metamathematical tags
636 like =strategy=, =goal=, or =auxiliary=.  Rather, the heuristics may be
637 used at an even higher level to produce or to implement these.  So,
638 for example, the heuristic might be what a =strategy= concretely
639 suggests.  It's also true that a given =auxiliary= might need a
640 heuristic "header", that explains /why/ this auxiliary problem has
641 been suggested.  Similar to a =strategy= the heuristic might look
642 for something that 'satisfies' or 'implements' the heuristics.
643 In some cases we've looked at, this 'satisficing' object will appear
644 directly as the argument of the heuristic, hence =heuristic(x)=.
645 For example: =specialise(THE PROBLEM, (sqrt(2)+sqrt(3))^2)=.
646 Incidentally, this particular example is only meaningful in connection
647 with *another* heuristic that has told us how to *generalise* the
648 problem, i.e., that has turned a static expression into something
649 with a variable in it.
650 ** Performatives (=perf=)                                            :YELLOW:
651 *** =Agree= (s [, a ])
652 **** Note: optional argument $a$ is a justification for $s$
653 *** =Assert= (s [, a ])
654 **** Note: optional argument $a$ is support for $s$
655 **** Comment: It seems like we might want to be able to assert a 'graph structure'
656 Here is an example from early in gowers-example.pdf
657 #+BEGIN_SRC c
658 Assert(exists(strategy(PROBLEM, strategyx))
659        AND has_property(strategyx,HAL))
660 #+END_SRC
661 *** =Challenge= (s [, c ])
662 **** Note: $c$ is a counter-argument or counter-example to $s$
663 *** =Define= (o,p)
664 **** Note: object with name $o$ satisfies property $p$
665 *** =Judge= (s)
666 **** Note: takes a =value= argument
667 *** =Query= (s)
668 *** =QueryE= ({pi(X)}.i)
669 **** Note: Asks for the class of objects  for which all of the properties pi hold
670 *** =Retract= (s [, a ])
671 **** Note: can only be made by someone who asserted $s$; $a$ is an optional reason
672 *** =Suggest= (s)
673 **** Note: Takes a =meta= argument