|
07550bc214
|
Prove 'sufficiency' for if-else.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-28 12:10:12 -07:00 |
|
|
9366ec4a97
|
Allow promoting end-to-end traces too
|
2024-04-28 12:00:06 -07:00 |
|
|
0fb884eb07
|
Use implicit arguments for more things
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-28 11:43:49 -07:00 |
|
|
6b44ac1feb
|
Make graph arguments implicit where possible
|
2024-04-28 11:37:08 -07:00 |
|
|
69a4e8eb5c
|
Add some helpers and rewrite code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-27 17:43:16 -07:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
f555947184
|
Promote traces through loop
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-27 14:38:07 -07:00 |
|
|
660f6594fd
|
Allow promoting traces through graph composition
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-27 14:28:00 -07:00 |
|
|
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 |
|
|
037358308f
|
Fix up Graph construction
|
2024-04-27 13:50:06 -07:00 |
|
|
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 |
|
|
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 |
|
|
b134c143ca
|
Start working on proving 'sufficiency'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-20 21:37:28 -07:00 |
|
|
e218d1b7a3
|
Add formalization of 'traces through graph'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-20 21:36:58 -07:00 |
|
|
6e3f06ca5d
|
Add a new 'properties' module
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-20 20:25:40 -07:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
2f91ca113e
|
Make 'MonotonicPredicate' into another typeclass
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 20:56:56 -07:00 |
|
|
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 |
|
|
fc27b045d3
|
Remove nested module from Graphs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 19:33:58 -07:00 |
|
|
de956cdc6a
|
Split the Language file into modules
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 18:39:38 -07:00 |
|
|
7ed7f20227
|
Add missing edge
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 15:30:07 -07:00 |
|
|
163108b9b3
|
Add precedence to some language constructs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 15:29:50 -07:00 |
|
|
8dc5c40eae
|
Get everything compiling
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 14:13:44 -07:00 |
|
|
44f04e4020
|
Get forward analysis working again
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 14:08:40 -07:00 |
|
|
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 |
|
|
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 |
|
|
b6e357787f
|
Add proof about 'both' and pairing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 12:25:59 -07:00 |
|
|
ce3fa182fe
|
Start formalizing monotonic function predicates
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-12 23:49:33 -07:00 |
|
|
71cb97ad8c
|
Reorder some definitions
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-12 23:27:17 -07:00 |
|
|
57606636a7
|
Slightly format some code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-12 23:22:31 -07:00 |
|
|
da2f7f51d7
|
Get Language typechecking again, finally
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-12 23:21:05 -07:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
bc5b4b7d9e
|
Explicitly write metas for missing functions
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-08 00:16:10 -07:00 |
|
|
520b2b514c
|
Clear up vector reindexing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-08 00:12:50 -07:00 |
|
|
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 |
|
|
b72ad070ba
|
Try using index-based comparisons
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-07 23:18:46 -07:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
844c99336a
|
Intermediate commit: add while loops and start trying to formalize them.
|
2024-04-03 22:31:23 -07:00 |
|
|
5d56a7ce2d
|
Fix comments in Forward.agda
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-23 12:09:14 -07:00 |
|
|
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 |
|