Commit Graph

55 Commits

Author SHA1 Message Date
11dd5ee9fd Put render rules separately from regular rules
This should let us hide them from the user and maybe speed up rendering

Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-02 00:25:23 -08:00
1d3f3fd3f8 Use 'lazy' to speed up re-rendering
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-02 00:07:01 -08:00
f964a60412 Perform metavariable substitution from quoting
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-02 00:06:33 -08:00
1fca9171b1 Unify conclusion before instantiating premises to save some time
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 23:40:29 -08:00
12fa4dc1fd WIP: Use bergamot to render inference rules.
Not the proof trees yet, but it should be about the same.
2023-12-01 23:31:43 -08:00
549527d0cc Add a 'call' primitive
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 18:15:32 -08:00
905b760dd7 Fix a few bugs with encoding / decoding strings
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 18:15:17 -08:00
a1ae15d84c Add a new builtin to identify symbols
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:56:27 -08:00
012c1b0d0c Extract common utility functions and convert symbols to strings
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:40:39 -08:00
1e12dc8032 Ensure metavariables aren't re-used in rules and queries
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:35:22 -08:00
f4619672a9 Implement more builtins
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:26:34 -08:00
faa65ff77b Don't encode '\n' for now
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:26:08 -08:00
66fbfd1962 Add necessary escape characters for LaTeX and pretty printing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:25:39 -08:00
22f3937523 Fix a parser bug to parse '1' as IntLit
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 16:24:19 -08:00
3232d80376 Add syntax sugar for lists
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 14:11:40 -08:00
a8f07dd422 Tweak pretty printing of LaTeX
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 14:09:12 -08:00
e659172320 Add a builtin rule for string concatenation
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 13:10:51 -08:00
546265f2e6 Add string literals to the term language
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 12:55:11 -08:00
45a04cc59c Add a mode for entering the object language to parse
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-12-01 11:31:38 -08:00
51c78af138 Add an initial parser for the Bergamot 'object language' 2023-11-30 22:44:20 -08:00
d9f9522365 Add a tab to switch between editor and rendered view 2023-11-30 21:29:37 -08:00
bb18c8bd8c Tweak the HTML tags generated by Bergamot.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-29 22:20:55 -08:00
524796d74f More strictly control what goes into elm.nix 2023-11-30 04:22:02 +00:00
cd2d6366b0 Add a flake file to build the project 2023-11-30 04:02:58 +00:00
a34e143408 Add Nix-specific generated dependencies
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-29 19:47:30 -08:00
e1c6e5e83f Use 'gas' instead of yields to limit recursion
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 21:28:27 -08:00
9d287a37d5 Add flags for setting rules and query before starting
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 20:53:31 -08:00
f30752a2c6 Minor tweaks to pretty printing and CSS
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 20:48:48 -08:00
e0532fb581 Fix the parser and add more syntax pretty printing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 20:44:27 -08:00
ff1ea05784 Add yielding to help proof search
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 17:17:10 -08:00
4deb7bc556 Minor tweaks to style and rule rendering 2023-11-26 16:32:27 -08:00
33c3f87564 Add some styling (still very early stages) 2023-11-26 16:25:23 -08:00
250dbb4ee8 Add an index.html file that includes the web component
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 15:54:17 -08:00
acc769e799 Add LaTeX support for rendering rules 2023-11-26 15:54:01 -08:00
7cc5d05e9c Add a way to print the rules as LaTeX 2023-11-26 14:34:52 -08:00
e123f24af0 Add support for reifying proof trees
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 13:14:44 -08:00
a24fbad249 Make Metavariable and UnificationVar newtypes to help type safety
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 12:58:38 -08:00
985be53367 Add an interactive 'can this query be satisfied' interface 2023-11-26 12:47:05 -08:00
9f7b59c65d Instantiate the query-to-be-proven as well
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 12:32:28 -08:00
2f1cb79013 Clean up the search and proving code somewhat 2023-11-26 12:27:44 -08:00
efe0efbee7 Add a (debug) interactive demo 2023-11-26 11:58:20 -08:00
800c96dc7b Add an initial Main.elm file 2023-11-26 11:43:38 -08:00
95c30b6891 Also parse whole programs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 11:42:46 -08:00
295c93e38a Add a parser for the tiny language
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 11:40:15 -08:00
6271dd8c2b Add an initial implementation of proof search
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 00:45:05 -08:00
7d78db96d6 Add a useful helper function to the instantiation state
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 00:44:43 -08:00
b13cdea15d Add a few more convenient operations to Search.elm
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-26 00:44:24 -08:00
2cc1012a09 Add an initial 'lazy list' for doing backtracking
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-25 23:33:48 -08:00
ed34302627 Add a function to substitute all variables for their values 2023-11-25 23:19:36 -08:00
3269e37ef3 Add some convenience exports to Syntax.elm 2023-11-25 23:15:00 -08:00