|
16fa4cd1d8
|
Use records rather than nested pairs to represent 'fixed height'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-09 20:11:04 -07:00 |
|
|
f4392b32c0
|
Finish the last proof obligation for trace walking
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-09 19:01:36 -07:00 |
|
|
794c04eee9
|
Prove the foldr-implies lemma
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-09 18:37:50 -07:00 |
|
|
80069e76e6
|
Prove the recursive step of trace walking
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-09 17:56:47 -07:00 |
|
|
20dc99ba1f
|
Re-indent some code to take up less horizontal space
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-09 16:57:03 -07:00 |
|
|
f0b0d51b48
|
Add unproven lemma about fold implication
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 23:38:23 -07:00 |
|
|
8ff88f9f9e
|
Move helper code into separate function
I'll need to reuse it.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 23:35:02 -07:00 |
|
|
838aaf9c58
|
Start end-to-end proof of correctness
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 23:30:03 -07:00 |
|
|
4ac9dffa9b
|
Prove that the var->lattice maps respect equality
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 22:53:21 -07:00 |
|
|
3f5551d70c
|
Add a lemma about the effect of joinAll
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 22:34:02 -07:00 |
|
|
5837fdf19b
|
Prove that 'updateAll' has preservation
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 22:29:36 -07:00 |
|
|
4350919871
|
Add proof about setVariablesForState
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 22:09:56 -07:00 |
|
|
7fe46b014c
|
Slightly simplify evaluation code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 22:05:50 -07:00 |
|
|
66d229c493
|
Prove that multi-statement evaluation "preserves" the validity of the analysis
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 21:51:53 -07:00 |
|
|
1b8bea8957
|
Use foldl in multi-statement evaluation
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 21:50:38 -07:00 |
|
|
ad4592d4d2
|
Switch to using implicit arguments where needed
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 21:34:17 -07:00 |
|
|
8d0d87d2d9
|
Start on proofs of correctness
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-05-08 20:50:21 -07:00 |
|
|
3859826293
|
Define interpretation of the sign lattice
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-30 21:58:41 -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 |
|
|
44f04e4020
|
Get forward analysis working again
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-04-13 14:08:40 -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 |
|
|
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 |
|
|
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 |
|
|
040c13caba
|
Use instances to simplify printing code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-11 12:50:05 -07:00 |
|
|
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 |
|
|
8a85c4497c
|
Prove that evaluation is monotonic and complete sign analysis
Other than monotonicity of plus and minus, god damn it.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 21:25:46 -07:00 |
|
|
8964ba59a1
|
Prove monotonicity of eval
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 20:29:05 -07:00 |
|
|
96f3ceaeb2
|
Use the previous join function directly in GeneralizedUpdate
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 19:41:02 -07:00 |
|
|
237250cf72
|
Stop using modules in 'Sign' analysis
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 19:23:48 -07:00 |
|
|
8515491327
|
Simplify AboveBelow a bit to avoid nested modules
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 18:43:10 -07:00 |
|
|
f21ebdcf46
|
Start working on the evaluation operation.
Proving monotonicity is the main hurdle here.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 18:13:01 -07:00 |
|
|
51accb6438
|
Define 'minus', too -- with no monotonicity proof.
I'm still thinking about how this should be achieved most easily.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 16:40:49 -07:00 |
|
|
afe5bac2dc
|
Commit result of (unsuccessfully) trying to prove monotonicity of plus.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-10 13:54:19 -07:00 |
|
|
f84a1c923c
|
Prove that the 'join' transformation is monotonic
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-09 23:06:47 -08:00 |
|
|
1b1b80465c
|
Use named modules to avoid having to pass redundant parameters
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-09 21:46:15 -08:00 |
|
|
0c30f8be48
|
Start on sign analysis (mostly just imports)
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
|
2024-03-09 14:00:10 -08:00 |
|