70847d51db
Swich AboveBelow to using instances
...
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2025-01-04 21:23:07 -08:00
d96eb97b69
Switch maps (and consequently most of the code) to using instances
...
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2025-01-04 21:16:22 -08:00
b0488c9cc6
Make 'IsDecidable' into a record to aid instance search
...
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2025-01-04 18:58:56 -08:00
c2c04e3ecd
Rewrite Forward analysis to use statement-based evaluators.
...
To keep old (expression-based) analyses working, switch to using
instance search and provide "adapters" that auto-construct statement
analyzers from expression analyzers.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-12-31 17:31:01 -08:00
10332351ea
Use instance search to avoid multiply-nested modules
...
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-12-31 00:21:10 -08:00
7d2928ed81
Prove that the sign analysis is correct
...
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-05-10 22:31:47 -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
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