Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Domain-specific visual representations of structures for proofs

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Domain-specific visual representations of structures for proofs


Chronological Thread 
  • From: Clément Pit-Claudel <cpitclaudel AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Domain-specific visual representations of structures for proofs
  • Date: Mon, 15 Nov 2021 14:14:10 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=cpitclaudel AT gmail.com; spf=Pass smtp.mailfrom=cpitclaudel AT gmail.com; spf=None smtp.helo=postmaster AT mail-qt1-f182.google.com
  • Ironport-data: A9a23:5aJD/KBCY5JpghVW/0biw5YqxClBgxIJ4g17XOLfVwm/hTMn3zZSzDQXCziEa/aCY2X9LdsgbovjpklXvpKkm99gGjLY11k9FiMQ8ZKt6fexdxqrYXvKdqUvdK/WhiknQoGowPscEzmM+X9BDpC79SMljPjRG+KmYAL5EnkZqTFMGH9JZS1LwLZRbr5A2bBVMivV0T/Ai5W31GyNh1aYBlkpB5er83uDihhdVAQw5TTSbdgT1LPXeuJ84Jg3fcldJFOgKmVY83LTegrN8F251juxExYFD9qklvPibhRPTOeCZ06BjX1ZX6XkiR9HzsAw+vxjZbxMNAEO1W3PxoAroDlOncTYpQMBNbXNhO8ZWgRUHiVWMqhP+buBKn+62SCW5xaZLyK1mK8G4EYeZNVEoI6bG1pm/vsBbTsJcxqrnPOz2Lv9S+92h81lItODAW+1kmU4mGufUuJ/FMiFG7GQsIcehmZh39QVSK6YOt5GPBNxSD/FRzFPHnYeLq4kuNmpo22mK2gB8xbNscLb+EDWxQ11laHxaZ/bI4zQA8pSmUmcqyTN+GGRP/3TD/THoRLtz55mrrWnceLHtIMu+HmQ8/drhBiK2jVWBkRGDx20pv62jkP4UNVaQ6DR0kLCsoBqnHFHjPGkN/F7nJJAlhEZUttUVeY97WlhD4LKth2BCDFsoiFpMbQbWQxfedDu/lCMltLtQzdotdV5jFr1Gqi89VuPBMTeEYPOieLog+fIDxkPbbzfVi7yc+s=
  • Ironport-hdrordr: A9a23:NTqgMq/alwCNTib7tyRuk+GOdr1zdoMgy1knxilNoENuH/BwxvrFoB1E73TJYW4qKQodcdDpAtjifZquz+8O3WB3B8bvYOCGghrkEGgG1+ffKlLbakrDH4JmtJuINpIOcOEYbmIKwvoSgjPIderIqePvmM/HuQ6d9QYVcegAUdAD0+4NMHf+LqQAfngiOXNWLvqhz/sCgwDlVWUcb8y9CHVAdfPEvcf3mJXvZgNDLwI76SGV5AnYqYLSIly95FMzQjlPybAt/SzuiAri/JiutPm911v1y3LT1ZJLg9Hso+EzRPBky/JlaQkEuDzYIbiJaIfy+AzdZ9vfr2rCpeO84SvI+f4DrU85MFvF+CcFkDOQrQrGo0WStWNwx0GT7/ARDQhKdPZplMZXdADU5FEnu8w52KVX33iBv54SFh/Ymj/hjuK4Hi2Cu3DE1kbKq9Rj+UC3kLFuG4N5vMga5gdYAZ0AFCX15MQuF/RvFtjV4LJTfUmBZ37Us2FzyJj0N05DVSuuUwwHoIiYwjJWlHd2ww8Rw9EehG4J8NY4R4Nf7+rJP6x0nPUXJ/VmJ55VFaMEW4+6G2bNSRXDPCabJknmDrgOPzbIp4Ts6Ls46em2cNgDzYc0mp7GTFRE3FRCM37GGImLxtlG4xrNSGKyUXDkzdxf/YFwvvnmSL/iIUS4OSQTegub0oAi6+HgKoeO0aNtco3exDHVaPh0NiXFKulvFUU=
  • Ironport-phdr: A9a23:z25g7hH/Blefe0EFKUsub51Gf2xLhN3EVzX9CrIZgr5DOp6u447ldBSGo6k31RmSBc6AsroE07OQ7/q4HzRYoN6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9sMRm6twvcutUZjYZsN6o61x/FrmdVd+hMym5kO06fkwzg6sus+ZJo7jhdte8m+8NcS6vxYr42TaZfDDQoMmA14NPkuBzeRgaR5XUST3sbnANQDwfK8B/1UJHxsjDntuVmwymVIdf2TbEvVju86apgVQLlhz0GNz4992HXl9BwgadGqx+vuxBz34jZa5yTOfFjfK3SYMkaSHJcUMhPWSxPAoCyYYUBAOUOP+lXs4bzqkASrRa9HwSgGP/jxzFKi3LwwKY00/4hEQbD3AE4Ad8OtG7TrNDrO6cUTeC61LPGzTTfb/9Pxzr97JLHcg08rv6SWbJ7bM3cxlU3FwPEklWftYjlMCmI1usQrWeb6/FtVe2qi2E9qgFxpiKjydsrionMn48YzE3P+iplzogvP9K4VFJ7bsC+EJtWryyWKop7T8whTmxqtyg3yrIIt561cSUKxpkq2wPSZvKbf4aI4B/uVeifLDl2in9qZb+ymRm//0evx+PzWMS63ktGoyxYmdfCsXAN0gbc6smBSvZl5keh2CqP2xnP5eFAO080iLfUJIAlwrIqmJoTq1zPHjfol0Xwlq+WcV4k9fay5+TmZLXmpYeQN4p1igHiKKghhNGwAfkgPgcTRWeb9v+81KH+/U35RLVGlOA5nbffvZvHJsobvra0DxFJ3osn8RqyDDer3M4FkXQGMF5JYg+Lgov3N13WPvz1Au2zjlWxnDtx2fzLMaHtDo/OI3TflrrqYKxz5FRGyAUpyNBS/5JUBa8FIPL0QkLxscbXDh49MwCt2ubnFMhx2poQWW6SAaKVLrnesVCP5uIoLOmMYJEatCzhJPgi4v7ilX45mVkDcqm1xZYbdmy0E/B8L0iaYXfgmMoNHGYWsgYkUeDni0OOXSZWZ3moXqI84j87CJihDYfGXo2inKSB3CanHpJKYmBJEE2MHmr2eIWAQPoMZyeSLdVgkjwAT7SuV4gh1RS2uA/g17VnNvbU+jEftZ/7yNd14PTTmQgu+jxwEsSSyHqAT3p0n2MNXz85xrpzoU17yleZ0Kh3meZUFdJJ56ABbgBvPpnFiud+FtraWwTbf97PRkz1bM+hBGQaSlM0ztkSVH58B5CJihne0yeuS+sej72XD5g9767R21D+Is98zzDN06x33ApueddGKWDz3v03zAPUHYOcyy1xdo6vfKUYmTfRrSKNlDrU+k5fVwF0XOPOWnVNPiM+Qvz240rDS/mlDrF1a2OpLOaNL6JLbpviilAUHJ/e

On 11/13/21 8:06 PM, Talia Ringer wrote:
> If you do, I'd love examples!!! This idea is like a couple of hours old,
> but I want to write it up with some examples so I can get a sense of how
> tractable it is, and probably propose it to some students next year.

This is a very cool topic. I've been looking at it on and off for a while in
the context of Alectryon (you can see some examples at the end of
https://pit-claudel.fr/clement/papers/alectryon-SLE20.pdf ).

As I see it there are two fairly different kinds of visualizations you may
want from your proof assistant: one is an instantaneous "show me concrete
examples of this goal". So if I'm trying to prove
right_triangle(a, b, c) /\ sorted [d(a, b);d(b, c);d(c, a)] ->
d(c, a)^2 = d(a, b)^2 + d(b, c)^2
then I may want to generate diagrams of triangles that show me that relation
on triangles with concrete edge sizes. This is the kind of stuff that
Penrose is good for, IIUC (http://penrose.ink/siggraph20.html)

This first use case is a bit like a visual quickchick.

But then there's a completely different use case, which is drawing a figure
that fully captures the generality of your goal. You may want to print a
math formula with proper mathematical notations, for example; or maybe you
want to render a separation logic formula as a graph of objects and memory
locations.

(You can see a very very unpolished prototype of the latter one at
https://people.csail.mit.edu/cpitcla/links/2020-10-sepview/LiterateQueue.html
: use the "windowed" style and use Ctrl+down arrow to step through the proof
steps; the pre- and post-conditions of the programs are presented as graphs
instead of separation logic formulae).

Tools like Penrose are not fully suited for that second problem, because in
general they don't guarantee "uniform continuity" of the diagrams, in the
sense that small modifications of the inputs (goals) can yield large changes
of the output (visualization). This is a problem because in this second use
case you typically want to show the way the visualization evolves as proof
steps are taken, so generating a completely new visualization is very
detrimental (it will completely confuse the user).

There are some descriptions of stuff I'd like to do in that realm on my "for
students" page at https://pit-claudel.fr/clement/prospective-students.html,
specifically the
https://pit-claudel.fr/clement/prospective-students.html#domain-specific-proof-visualizations
section and the
https://pit-claudel.fr/clement/prospective-students.html#mixed-rendering-for-proof-presentation
section

Also worth mentioning is the work the Lean folks are doing exploring all sort
of cool visualizations with widgets (unfortunately the paper at
https://drops.dagstuhl.de/opus/volltexte/2021/13899/pdf/LIPIcs-ITP-2021-4.pdf
is a bit light on pictures).

Clément.




Archive powered by MHonArc 2.6.19+.

Top of Page