Commit Graph

182 Commits

Author SHA1 Message Date
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
Danila Fedorin 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
Danila Fedorin 8964ba59a1 Prove monotonicity of eval
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-10 20:29:05 -07:00
Danila Fedorin 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
Danila Fedorin 237250cf72 Stop using modules in 'Sign' analysis
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-10 19:23:48 -07:00
Danila Fedorin 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
Danila Fedorin 3305de4710 Remove need for explicit arguments in map derivatives
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-10 18:35:29 -07:00
Danila Fedorin 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
Danila Fedorin 0705df708e Prove that variables in a program all come from the program's code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-10 16:41:21 -07:00
Danila Fedorin 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
Danila Fedorin 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
Danila Fedorin fdc40632bf Add a way to retrieve the code for a particular state
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 23:09:50 -08:00
Danila Fedorin 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
Danila Fedorin 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
Danila Fedorin 56c72e1388 Delete unused homomorphism proof that was broken by an Agda update.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 14:07:56 -08:00
Danila Fedorin 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
Danila Fedorin 75f981cb75 Define simple sequential-only programs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:59:48 -08:00
Danila Fedorin ca99e18184 Tweak exports from finite value bundle to avoid (some) redundant arguments
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:59:22 -08:00
Danila Fedorin 702cf2c298 Expose more functionaity from the set lattice
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:58:40 -08:00
Danila Fedorin 0c088ca2ae Prove multi-key access monotonicity in finite maps
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:58:07 -08:00
Danila Fedorin bc138d87f0 Prove things about key-based access in map
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:57:29 -08:00
Danila Fedorin 311ed75186 Expose more helpers from 'Map'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:57:02 -08:00
Danila Fedorin 1ccc6f08e5 Add more properties of uniqueness
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:54:01 -08:00
Danila Fedorin 332b7616cf Prove that foldr is monotonic when input lists are pairwise monotonic
This should help prove that "join" is monotonic

Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-07 21:53:45 -08:00
Danila Fedorin 7905d106e2 Tweak signature of 'forget' to simplify proofs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-07 20:04:33 -08:00
Danila Fedorin 34203840c8 Use the new provenance function to clean up some proofs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-07 19:59:14 -08:00
Danila Fedorin 48983c55b1 Prove exercise 4.26 from the textbook
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-06 00:35:29 -08:00
Danila Fedorin fa0282ff6f Prove that the identity function is monotonic
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-06 00:35:06 -08:00
Danila Fedorin 164fc3636f Prove that constant functions are monotonic
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 17:23:57 -08:00
Danila Fedorin c932210d37 Re-expert monotonicity from Lattice
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 17:04:18 -08:00
Danila Fedorin a8d26b1c48 Prove that join is monotonic in both arguments
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 16:51:57 -08:00
Danila Fedorin 2ddac38c3f Update with new changes to Agda
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 16:44:10 -08:00
Danila Fedorin f00dabfc93 More cleanup to FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 16:23:33 -08:00
Danila Fedorin 01f4e02026 More cleanup to FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 16:05:42 -08:00
Danila Fedorin fbbcd72037 Some early refactors of FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 15:18:10 -08:00
Danila Fedorin 03cdc65a7b Format AboveBelow a bit better (round two)
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:56:04 -08:00
Danila Fedorin ec2b1ec3ba Format FiniteMap a little bit better
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:54:44 -08:00
Danila Fedorin 112dcb2208 Clean up AboveBelow slightly
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:34:15 -08:00
Danila Fedorin 8516f58b1d Remove helper comment.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:13:02 -08:00
Danila Fedorin 6cb6281bc2 Make main run the fixed point algorithm
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 23:42:10 -08:00
Danila Fedorin 0774946211 Expose decidability from Map modules
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 23:27:49 -08:00
Danila Fedorin 65d1590358 Prove monotonicity of lub in one argument
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 23:26:25 -08:00
Danila Fedorin ae3e2c28b0 Create bundles and add a program to evaluate some code with finite maps
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:58:58 -08:00
Danila Fedorin 97a4165b58 Expose bundles from FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:35:40 -08:00
Danila Fedorin 754714d770 Restore bundles in IterProd
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:12:22 -08:00
Danila Fedorin ae09a27f64 Prove that finite value-maps are finite height
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:03:23 -08:00
Danila Fedorin ca90f6509c Re-write the IterProd proofs to couple lattice and finite height lattice
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:02:56 -08:00