Commit Graph

260 Commits

Author SHA1 Message Date
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
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
311ed75186 Expose more helpers from 'Map'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:57:02 -08:00
1ccc6f08e5 Add more properties of uniqueness
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-09 13:54:01 -08:00
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
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
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
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
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
164fc3636f Prove that constant functions are monotonic
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 17:23:57 -08:00
c932210d37 Re-expert monotonicity from Lattice
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 17:04:18 -08:00
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
2ddac38c3f Update with new changes to Agda
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-03 16:44:10 -08:00
f00dabfc93 More cleanup to FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 16:23:33 -08:00
01f4e02026 More cleanup to FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 16:05:42 -08:00
fbbcd72037 Some early refactors of FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 15:18:10 -08:00
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
ec2b1ec3ba Format FiniteMap a little bit better
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:54:44 -08:00
112dcb2208 Clean up AboveBelow slightly
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:34:15 -08:00
8516f58b1d Remove helper comment.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-02 14:13:02 -08:00
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
0774946211 Expose decidability from Map modules
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 23:27:49 -08:00
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
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
97a4165b58 Expose bundles from FiniteValueMap
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:35:40 -08:00
754714d770 Restore bundles in IterProd
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 21:12:22 -08:00
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
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
29898e738b Clean up a bit
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 19:08:29 -08:00
3a537f54ba Add a helpful utility function
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 19:08:11 -08:00
52e7a7a208 Prove distributivity in the other direction, too
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-03-01 19:07:59 -08:00
8715d6d89c Finish proof of from distributivity
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-26 00:00:18 -08:00
b083561629 Add most of the proof of from distributivity.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 20:28:07 -08:00
3ad7db738a Prove that 'to' preserves equality
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 18:43:54 -08:00
53a08b8f79 Prove that 'first' presrves equality
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 18:08:03 -08:00
d6064ff752 Expose 'locate' and 'forget' from Map
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 18:07:50 -08:00
d280f5afdf Make auxillary definitions private
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 14:06:45 -08:00
b96bac5518 Prove the other direction for inverses.
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 13:57:45 -08:00
99fc21cef2 Expose 'subset-impl' from Map
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 13:57:28 -08:00
2a06e6ae2d Adjust 'to' to make it easier to reason about
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-25 12:17:19 -08:00
671ffc82df Define to-and-from functions from finite maps to tuples and prove one inverse direction
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-19 14:50:29 -08:00
486b552b59 Try to generalize universe levels where possible
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-19 12:36:46 -08:00
aafcb2683d Prove the transport of 'height lattice' property given an isomorphism
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-18 23:26:41 -08:00
8c9f39ac35 Add some additional 'equivalence' definitions to Equivalence
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-18 21:46:42 -08:00
6384f7006e Make 'lattice' public
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-18 20:18:38 -08:00
b1c6b4c99a Expose bundles from Unit
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-11 21:20:05 -08:00
5420bb808e Expose bundles from 'Prod'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-11 21:16:41 -08:00
4c0860f4c7 Expose bundle form MapSet
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-11 21:14:49 -08:00
e89418d600 Expose bundle form 'Map'
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-11 21:12:49 -08:00
bfb32092c2 Expose bundles and apply so renames to IterProd
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-02-11 21:10:51 -08:00