Commit Graph

21 Commits

Author SHA1 Message Date
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
f4fba66f8b Add instantiating terms of metavariables with variables
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-25 23:08:21 -08:00
824b19123e Fix a bug in unification (lol) 2023-11-25 23:08:05 -08:00
a9163c0797 Rename the 'Metavariable' type to 'UnificationVar'
'metavariable' is inaccurate.

Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-25 22:53:08 -08:00
bfa9deb0b0 Implement a first draft of unification
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-25 22:51:53 -08:00
d0b88ee6df Initial commit
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2023-11-25 22:51:39 -08:00