Commit Graph

278 Commits

Author SHA1 Message Date
Danila Fedorin 4fee16413a Define end-to-end path concatenation and prove one more case
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 17:34:50 -07:00
Danila Fedorin 316e56f2bc Dip toes into creating end-to-end traces
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 15:27:46 -07:00
Danila Fedorin ab40a27e78 Formulate correctness of buildCfg using end-to-end traces
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 14:56:19 -07:00
Danila Fedorin f555947184 Promote traces through loop
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 14:38:07 -07:00
Danila Fedorin 660f6594fd Allow promoting traces through graph composition
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 14:28:00 -07:00
Danila Fedorin fb32315f58 Allow traces to be promoted through graph overlaying
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-27 14:18:16 -07:00
Danila Fedorin 037358308f Fix up Graph construction 2024-04-27 13:50:06 -07:00
Danila Fedorin f2b8084a9c Delete code that won't be used for this approach
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-25 23:13:15 -07:00
Danila Fedorin c00c8e3e85 Use different graph operations to implement construction
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-25 23:10:41 -07:00
Danila Fedorin b134c143ca Start working on proving 'sufficiency'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 21:37:28 -07:00
Danila Fedorin e218d1b7a3 Add formalization of 'traces through graph'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 21:36:58 -07:00
Danila Fedorin 6e3f06ca5d Add a new 'properties' module
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 20:25:40 -07:00
Danila Fedorin 54b11d21b0 Start working on proving facts about graph construction
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 19:31:47 -07:00
Danila Fedorin f3e0d5f2e3 Use 'data' instead of aliases to prove reasoning properties
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 19:31:13 -07:00
Danila Fedorin 855bf3f56c Add functions to reason about the 'monotonic state' operations
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-20 18:09:01 -07:00
Danila Fedorin 2f91ca113e Make 'MonotonicPredicate' into another typeclass
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 20:56:56 -07:00
Danila Fedorin 7571cb7451 Extract 'monotonic state' into its own module
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 20:46:30 -07:00
Danila Fedorin fc27b045d3 Remove nested module from Graphs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 19:33:58 -07:00
Danila Fedorin de956cdc6a Split the Language file into modules
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 18:39:38 -07:00
Danila Fedorin 7ed7f20227 Add missing edge
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 15:30:07 -07:00
Danila Fedorin 163108b9b3 Add precedence to some language constructs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 15:29:50 -07:00
Danila Fedorin 8dc5c40eae Get everything compiling
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 14:13:44 -07:00
Danila Fedorin 44f04e4020 Get forward analysis working again
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 14:08:40 -07:00
Danila Fedorin 4fe0d147fa Adjust 'Program' to have a graph and basic blocks
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 13:39:15 -07:00
Danila Fedorin ba1c9b3ec8 Remove sketch if proof since the proof is done
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 12:31:04 -07:00
Danila Fedorin b6e357787f Add proof about 'both' and pairing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-13 12:25:59 -07:00
Danila Fedorin ce3fa182fe Start formalizing monotonic function predicates
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-12 23:49:33 -07:00
Danila Fedorin 71cb97ad8c Reorder some definitions
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-12 23:27:17 -07:00
Danila Fedorin 57606636a7 Slightly format some code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-12 23:22:31 -07:00
Danila Fedorin da2f7f51d7 Get Language typechecking again, finally
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-12 23:21:05 -07:00
Danila Fedorin 2db11dcfc7 Use concatenation to represent adding new nodes
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-12 22:04:43 -07:00
Danila Fedorin 3e2719d45f Turn old proof into a hole to clean up later.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 22:45:04 -07:00
Danila Fedorin 78252b6c9e Add proof of node preservation for adding edges.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 22:43:07 -07:00
Danila Fedorin 85fdf544b9 Translate informal proof of (node) transitivity into formal one.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 20:57:08 -07:00
Danila Fedorin 4f14a7b765 Successfully prove that monotonic updates preserve existing indices
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 00:24:52 -07:00
Danila Fedorin bc5b4b7d9e Explicitly write metas for missing functions
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 00:16:10 -07:00
Danila Fedorin 520b2b514c Clear up vector reindexing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-08 00:12:50 -07:00
Danila Fedorin f7ac22257e Beat head against the vector-cast wall.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-07 23:44:35 -07:00
Danila Fedorin b72ad070ba Try using index-based comparisons
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-07 23:18:46 -07:00
Danila Fedorin 195537fe15 Implement graph construction using <*>, map, and update.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-07 20:26:38 -07:00
Danila Fedorin d4b0796715 Intermediate commit. Switch to *-based definition of <=.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-07 19:51:59 -07:00
Danila Fedorin b505063771 Start working on proofs of Graph-related things
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-04-04 20:34:28 -07:00
Danila Fedorin 844c99336a Intermediate commit: add while loops and start trying to formalize them. 2024-04-03 22:31:23 -07:00
Danila Fedorin 5d56a7ce2d Fix comments in Forward.agda
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-23 12:09:14 -07:00
Danila Fedorin 2e096bd64e Extract common parts of forward analyses into Forward.agda
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-22 17:50:29 -07:00
Danila Fedorin 1a7b2a1736 Adjust behavior of eval to not require constant 'k in vars' threading
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-22 17:15:40 -07:00
Danila Fedorin f0da9a9020 Move more code out of Sign and into Main
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-11 13:07:42 -07:00
Danila Fedorin 040c13caba Use instances to simplify printing code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-11 12:50:05 -07:00
Danila Fedorin 56da61b339 Delete the bundles since they did not turn out all that useful
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-11 12:14:53 -07:00
Danila Fedorin 3e88a64ed9 Add some debugging code to sign analysis to print the results
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-10 22:23:45 -07:00